From: <rb...@fr...> - 2005-04-08 20:01:22
|
CVS Root: /cvs/gstreamer Module: mirror Changes by: rbultje Date: Fri Apr 08 2005 13:01:21 PDT Log message: Use posix_memalign() instead of memalign() for aligned memory allocation, fixing #172961. Also, fix an off-by-one unallowed memory access error in MJPEG decoding, fixing #173044. Modified files: ffmpeg : configure.ac ffmpeg/libavcodec: mem.c mjpeg.c ffmpeg/patches : series Added files: ffmpeg/patches : memalign.patch mjpegoverflow.patch Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/mirror/ffmpeg/configure.ac.diff?r1=1.9&r2=1.10 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/mirror/ffmpeg/libavcodec/mem.c.diff?r1=1.2&r2=1.3 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/mirror/ffmpeg/libavcodec/mjpeg.c.diff?r1=1.3&r2=1.4 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/mirror/ffmpeg/patches/memalign.patch?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/mirror/ffmpeg/patches/mjpegoverflow.patch?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/mirror/ffmpeg/patches/series.diff?r1=1.7&r2=1.8 ====Begin Diffs==== Index: configure.ac =================================================================== RCS file: /cvs/gstreamer/mirror/ffmpeg/configure.ac,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- configure.ac 18 Dec 2004 19:06:50 -0000 1.9 +++ configure.ac 8 Apr 2005 20:01:08 -0000 1.10 @@ -337,8 +337,8 @@ ]) dnl Check for memalign -AC_CHECK_FUNC(memalign,[ - AC_DEFINE(HAVE_MEMALIGN, 1, [whether memalign() is available]) +AC_CHECK_FUNC(posix_memalign,[ + AC_DEFINE(HAVE_POSIX_MEMALIGN, 1, [whether memalign() is available]) dnl libz probing Index: mem.c RCS file: /cvs/gstreamer/mirror/ffmpeg/libavcodec/mem.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- mem.c 16 Dec 2004 17:44:17 -0000 1.2 +++ mem.c 8 Apr 2005 20:01:09 -0000 1.3 @@ -52,8 +52,9 @@ diff= ((-(int)ptr - 1)&15) + 1; ptr += diff; ((char*)ptr)[-1]= diff; -#elif defined (HAVE_MEMALIGN) - ptr = memalign(16,size); +#elif defined (HAVE_POSIX_MEMALIGN) + if (!posix_memalign(&ptr, 16, size)) + return NULL; /* Why 64? Indeed, we should align it: on 4 for 386 Index: mjpeg.c RCS file: /cvs/gstreamer/mirror/ffmpeg/libavcodec/mjpeg.c,v retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- mjpeg.c 16 Dec 2004 17:44:17 -0000 1.3 +++ mjpeg.c 8 Apr 2005 20:01:09 -0000 1.4 @@ -1765,7 +1765,7 @@ #endif buf_ptr = *pbuf_ptr; - while (buf_ptr < buf_end) { + while (buf_ptr < buf_end - 1) { v = *buf_ptr++; v2 = *buf_ptr; if ((v == 0xff) && (v2 >= 0xc0) && (v2 <= 0xfe) && buf_ptr < buf_end) { --- NEW FILE: memalign.patch --- Index: ffmpeg/configure.ac --- ffmpeg.orig/configure.ac 2004-12-18 19:57:45.000000000 +0100 +++ ffmpeg/configure.ac 2005-04-08 21:48:49.808422142 +0200 Index: ffmpeg/libavcodec/mem.c --- ffmpeg.orig/libavcodec/mem.c 2005-04-08 21:24:17.000000000 +0200 +++ ffmpeg/libavcodec/mem.c 2005-04-08 21:49:31.408905595 +0200 --- NEW FILE: mjpegoverflow.patch --- Index: ffmpeg/libavcodec/mjpeg.c --- ffmpeg.orig/libavcodec/mjpeg.c 2004-12-16 16:27:51.000000000 +0100 +++ ffmpeg/libavcodec/mjpeg.c 2005-04-08 21:50:50.426030850 +0200 Index: series RCS file: /cvs/gstreamer/mirror/ffmpeg/patches/series,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- series 17 Dec 2004 18:43:49 -0000 1.7 +++ series 8 Apr 2005 20:01:09 -0000 1.8 @@ -1,2 +1,4 @@ autotools.patch noinst.patch +memalign.patch +mjpegoverflow.patch |