"value":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in `f->vendor[len] = (char)'\\0';`. The root cause is that if the len read in `start_decoder` is `-1` and `len + 1` becomes 0 when passed to `setup_malloc`. The `setup_malloc` behaves differently when `f->alloc.alloc_buffer` is pre-allocated. Instead of returning `NULL` as in `malloc` case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution."
},
{
"lang":"es",
"value":"stb_vorbis es una librer\u00eda de archivo \u00fanico con licencia MIT para procesar archivos ogg vorbis. Un archivo manipulado puede provocar una escritura fuera de l\u00edmites en `f->vendor[len] = (char)'\\0';`. La causa principal es que si el len le\u00eddo en `start_decoder` es `-1` y `len + 1` se convierte en 0 cuando se pasa a `setup_malloc`. `setup_malloc` se comporta de manera diferente cuando `f->alloc.alloc_buffer` est\u00e1 preasignado. En lugar de devolver \"NULL\" como en el caso de \"malloc\", desplaza el b\u00fafer preasignado a cero y devuelve el bloque de memoria disponible actualmente. Este problema puede provocar la ejecuci\u00f3n del c\u00f3digo."