diff options
author | sat <sat@FreeBSD.org> | 2007-06-11 23:28:25 +0800 |
---|---|---|
committer | sat <sat@FreeBSD.org> | 2007-06-11 23:28:25 +0800 |
commit | 12ef37c70f9f6b777acc3480125332ca0d2018d3 (patch) | |
tree | 02af124ba55722b2ebd150bf85e42060409244f3 | |
parent | 7f25222ed5a2a99c3e1edad6eb5551faf1d8a29b (diff) | |
download | freebsd-ports-gnome-12ef37c70f9f6b777acc3480125332ca0d2018d3.tar.gz freebsd-ports-gnome-12ef37c70f9f6b777acc3480125332ca0d2018d3.tar.zst freebsd-ports-gnome-12ef37c70f9f6b777acc3480125332ca0d2018d3.zip |
- Fix IMG_ReadXPMFromArray crash
- Bump portrevision
PR: ports/110018
Submitted by: "Eric P. Scott" <eps+pbug0703@ana.com>
Approved by: shaun (maintainer)
Obtained from: bugzilla.libsdl.org, patch by Michael Koch <konqueror@gmx.de>
-rw-r--r-- | graphics/sdl_image/Makefile | 2 | ||||
-rw-r--r-- | graphics/sdl_image/files/patch-sdl_image.segfault | 164 |
2 files changed, 165 insertions, 1 deletions
diff --git a/graphics/sdl_image/Makefile b/graphics/sdl_image/Makefile index 7e95908ea40b..b8d277b1cccb 100644 --- a/graphics/sdl_image/Makefile +++ b/graphics/sdl_image/Makefile @@ -7,7 +7,7 @@ PORTNAME= sdl_image PORTVERSION= 1.2.5 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics MASTER_SITES= http://www.libsdl.org/projects/SDL_image/release/ DISTNAME= SDL_image-${PORTVERSION} diff --git a/graphics/sdl_image/files/patch-sdl_image.segfault b/graphics/sdl_image/files/patch-sdl_image.segfault new file mode 100644 index 000000000000..bc2e8129371b --- /dev/null +++ b/graphics/sdl_image/files/patch-sdl_image.segfault @@ -0,0 +1,164 @@ +diff -u sdl-image1.2-1.2.5/IMG_bmp.c IMG_bmp.c +--- sdl-image1.2-1.2.5/IMG_bmp.c 2006-05-14 17:57:03.000000000 -0300 ++++ IMG_bmp.c 2006-07-21 20:34:29.193015440 -0300 +@@ -36,6 +36,8 @@ + int is_BMP; + char magic[2]; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_BMP = 0; + if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { +diff -u sdl-image1.2-1.2.5/IMG_gif.c IMG_gif.c +--- sdl-image1.2-1.2.5/IMG_gif.c 2006-05-14 16:54:24.000000000 -0300 ++++ IMG_gif.c 2006-07-21 20:33:22.437423410 -0300 +@@ -36,6 +36,8 @@ + int is_GIF; + char magic[6]; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_GIF = 0; + if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { +diff -u sdl-image1.2-1.2.5/IMG_jpg.c IMG_jpg.c +--- sdl-image1.2-1.2.5/IMG_jpg.c 2006-05-14 16:54:24.000000000 -0300 ++++ IMG_jpg.c 2006-07-21 20:22:29.386350188 -0300 +@@ -179,6 +179,8 @@ + /* Blame me, not Sam, if this doesn't work right. */ + /* And don't forget to report the problem to the the sdl list too! */ + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_JPG = 0; + in_scan = 0; +diff -u sdl-image1.2-1.2.5/IMG_lbm.c IMG_lbm.c +--- sdl-image1.2-1.2.5/IMG_lbm.c 2006-05-12 00:02:44.000000000 -0300 ++++ IMG_lbm.c 2006-07-21 20:33:14.278818049 -0300 +@@ -65,6 +65,8 @@ + int is_LBM; + Uint8 magic[4+4+4]; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_LBM = 0; + if ( SDL_RWread( src, magic, sizeof(magic), 1 ) ) +diff -u sdl-image1.2-1.2.5/IMG_pcx.c IMG_pcx.c +--- sdl-image1.2-1.2.5/IMG_pcx.c 2006-05-01 04:25:51.000000000 -0300 ++++ IMG_pcx.c 2006-07-21 20:25:15.919749204 -0300 +@@ -69,6 +69,8 @@ + const int PCX_RunLength_Encoding = 1; + struct PCXheader pcxh; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_PCX = 0; + if ( SDL_RWread(src, &pcxh, sizeof(pcxh), 1) == 1 ) { +diff -u sdl-image1.2-1.2.5/IMG_png.c IMG_png.c +--- sdl-image1.2-1.2.5/IMG_png.c 2006-05-14 16:54:24.000000000 -0300 ++++ IMG_png.c 2006-07-21 20:25:07.367217023 -0300 +@@ -273,6 +273,8 @@ + if ( IMG_InitPNG() < 0 ) { + return 0; + } ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_PNG = 0; + if ( SDL_RWread(src, buf, 1, PNG_BYTES_TO_CHECK) == PNG_BYTES_TO_CHECK ) { +diff -u sdl-image1.2-1.2.5/IMG_pnm.c IMG_pnm.c +--- sdl-image1.2-1.2.5/IMG_pnm.c 2006-05-01 04:25:51.000000000 -0300 ++++ IMG_pnm.c 2006-07-21 20:26:06.881005273 -0300 +@@ -44,6 +44,8 @@ + int is_PNM; + char magic[2]; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_PNM = 0; + if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { +diff -u sdl-image1.2-1.2.5/IMG_tif.c IMG_tif.c +--- sdl-image1.2-1.2.5/IMG_tif.c 2006-07-21 20:31:17.000000000 -0300 ++++ IMG_tif.c 2006-07-21 20:27:09.959187601 -0300 +@@ -189,6 +189,8 @@ + if ( IMG_InitTIF() < 0 ) { + return 0; + } ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_TIF = 0; + +diff -u sdl-image1.2-1.2.5/IMG_xcf.c IMG_xcf.c +--- sdl-image1.2-1.2.5/IMG_xcf.c 2006-05-01 04:25:51.000000000 -0300 ++++ IMG_xcf.c 2006-07-21 20:28:49.113194657 -0300 +@@ -213,6 +213,8 @@ + int is_XCF; + char magic[14]; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_XCF = 0; + if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { +diff -u sdl-image1.2-1.2.5/IMG_xpm.c IMG_xpm.c +--- sdl-image1.2-1.2.5/IMG_xpm.c 2006-05-12 00:02:44.000000000 -0300 ++++ IMG_xpm.c 2006-07-21 20:33:29.517213256 -0300 +@@ -59,6 +59,8 @@ + int is_XPM; + char magic[9]; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_XPM = 0; + if ( SDL_RWread(src, magic, sizeof(magic), 1) ) { +@@ -326,7 +328,8 @@ + linebuf = NULL; + buflen = 0; + +- start = SDL_RWtell(src); ++ if ( src ) ++ start = SDL_RWtell(src); + + if(xpm) + xpmlines = &xpm; +@@ -453,7 +456,8 @@ + + done: + if(error) { +- SDL_RWseek(src, start, SEEK_SET); ++ if ( src ) ++ SDL_RWseek(src, start, SEEK_SET); + if ( image ) { + SDL_FreeSurface(image); + image = NULL; +diff -u sdl-image1.2-1.2.5/IMG_xv.c IMG_xv.c +--- sdl-image1.2-1.2.5/IMG_xv.c 2006-05-01 04:25:51.000000000 -0300 ++++ IMG_xv.c 2006-07-21 20:29:16.504502815 -0300 +@@ -89,6 +89,8 @@ + int is_XV; + int w, h; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_XV = 0; + if ( get_header(src, &w, &h) == 0 ) { +diff -u sdl-image1.2-1.2.5/IMG_xxx.c IMG_xxx.c +--- sdl-image1.2-1.2.5/IMG_xxx.c 2006-05-01 04:25:51.000000000 -0300 ++++ IMG_xxx.c 2006-07-21 20:29:57.169539262 -0300 +@@ -34,6 +34,8 @@ + int start; + int is_XXX; + ++ if ( !src ) ++ return 0; + start = SDL_RWtell(src); + is_XXX = 0; + |