]> granicus.if.org Git - libjpeg-turbo/commit
TurboJPEG: Fix potential memory leaks
authorDRC <information@libjpeg-turbo.org>
Sat, 18 Mar 2017 17:56:36 +0000 (12:56 -0500)
committerDRC <information@libjpeg-turbo.org>
Sat, 18 Mar 2017 18:12:17 +0000 (13:12 -0500)
commitd4c41fe0dabe2d1539763c899f879cc1e391750a
treee14ec5f33c1fd322ea68229641d462990368f45a
parenta0b7de9a47358a19b31db447dbf02b488463eb7e
TurboJPEG: Fix potential memory leaks

Referring to https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=746,
it seems that the values of local buffer pointers in TurboJPEG API
functions aren't always preserved if longjmp() returns control to a
point prior to the allocation of the local buffers.  This is known to
be an issue with GCC 4.x and clang with -O1 and higher optimization
levels but not with GCC 5.x and later.  It is unknown why GCC 5.x and
6.x do not suffer from the issue, but possibly the local buffer pointers
are not allocated on the stack when using those more recent compilers.

In any case, this commit modifies the TurboJPEG API library code such
that the jump buffer is always updated after any local buffer pointers
are allocated but before any subsequent libjpeg API functions are
called.
ChangeLog.md
turbojpeg.c