libogg crashes when out of memory
libogg uses pointers returned by malloc, realloc, etc. without checking whether they're null, which will happen when there's no memory available. This causes the application using libogg to segfault; for example,
$ ulimit -S -v 11000 -c hard $ vcut vcut-test-tones.ogg a b +1.05
segfaults at a memcpy call in ogg_stream_packetin on my system.
Functions should return an error code if they can't allocate memory, so the application can handle this in an appropriate way. Unfortunately, not all functions that allocate memory internally can return error codes, so it may be impossible to fix this in a backwards-compatible way.