While attempting to port lcdtest to FreeBSD, I seem to have stumbled upon a NULL pointer dereference "land mine" inside SDL_image. [lcdtest-1.0.2/lcdtest.c:116] help_font_surface = IMG_ReadXPMFromArray (help_font_xpm); [SDL_image-1.2.5/IMG_xpm.c:479-482] SDL_Surface *IMG_ReadXPMFromArray(char **xpm) { return load_xpm(xpm, NULL); } [SDL_image-1.2.5/IMG_xpm.c:308-311] /* read XPM from either array or RWops */ static SDL_Surface *load_xpm(char **xpm, SDL_RWops *src) { int start; [SDL_image-1.2.5/IMG_xpm.c:329] start = SDL_RWtell(src); [SDL/SDL_rwops.h:110] #define SDL_RWtell(ctx) (ctx)->seek(ctx, 0, RW_SEEK_CUR) Fix: None yet. Bonus points for fixing the problem and committing a working lcdtest port. ;-) How-To-Repeat: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # sysutils/lcdtest # sysutils/lcdtest/Makefile # sysutils/lcdtest/distinfo # sysutils/lcdtest/pkg-descr # echo c - sysutils/lcdtest mkdir -p sysutils/lcdtest > /dev/null 2>&1 echo x - sysutils/lcdtest/Makefile sed 's/^X//' >sysutils/lcdtest/Makefile << 'END-of-sysutils/lcdtest/Makefile' X# New ports collection makefile for: lcdtest X# Date created: 6 Mar 2007 X# Whom: Your Name Here <yourname@example.com> X# X# $FreeBSD$ X# X XPORTNAME= lcdtest XPORTVERSION= 1.02 XCATEGORIES= sysutils XMASTER_SITES= http://www.brouhaha.com/%7Eeric/software/lcdtest/download/ X XMAINTAINER= ports@FreeBSD.org XCOMMENT= LCD monitor test pattern generator X XBUILD_DEPENDS= pngtopnm:${PORTSDIR}/graphics/netpbm X XUSE_GMAKE= yes XUSE_SDL= sdl image X XMAN1= lcdtest.1 X.if !defined(NOPORTDOCS) XPORTDOCS= README X.endif XMAKE_ENV+= CPPFLAGS="`sdl-config --cflags`" LOADLIBES="`sdl-config --libs`" XMAKE_ARGS= -o SDL/SDL.h -o SDL/SDL_image.h CFLAGS="${CFLAGS}" XPLIST_FILES= bin/lcdtest X Xdo-install: X ${INSTALL_PROGRAM} ${WRKSRC}/lcdtest ${PREFIX}/bin X ${INSTALL_MAN} ${WRKSRC}/lcdtest.1 ${MAN1PREFIX}/man/man1 X.if !defined(NOPORTDOCS) X @${MKDIR} ${DOCSDIR} X ${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR} X.endif X X.include <bsd.port.mk> END-of-sysutils/lcdtest/Makefile echo x - sysutils/lcdtest/distinfo sed 's/^X//' >sysutils/lcdtest/distinfo << 'END-of-sysutils/lcdtest/distinfo' XMD5 (lcdtest-1.02.tar.gz) = faa33d39a895be1987cf981a8e8cede7 XSHA256 (lcdtest-1.02.tar.gz) = 996e6da43b2d0c1e4a5cb49160e6f6a1c40326f378e38abeeccb1f286d7cb748 XSIZE (lcdtest-1.02.tar.gz) = 29058 END-of-sysutils/lcdtest/distinfo echo x - sysutils/lcdtest/pkg-descr sed 's/^X//' >sysutils/lcdtest/pkg-descr << 'END-of-sysutils/lcdtest/pkg-descr' Xlcdtest is a utility to display LCD monitor test patterns. It may be Xuseful for adjusting the pixel clock frequency and phase on LCD Xmonitors when using analog inputs, and for finding pixels that are Xstuck on or off. X XWWW: http://www.brouhaha.com/%7Eeric/software/lcdtest/ END-of-sysutils/lcdtest/pkg-descr exit
Responsible Changed From-To: freebsd-ports-bugs->shaun Over to maintainer
"Known" problem; patch available. http://bugzilla.libsdl.org/show_bug.cgi?id=284
Replace "How-To-Repeat" with: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # sysutils/lcdtest # sysutils/lcdtest/Makefile # sysutils/lcdtest/distinfo # sysutils/lcdtest/pkg-descr # echo c - sysutils/lcdtest mkdir -p sysutils/lcdtest > /dev/null 2>&1 echo x - sysutils/lcdtest/Makefile sed 's/^X//' >sysutils/lcdtest/Makefile << 'END-of-sysutils/lcdtest/Makefile' X# New ports collection makefile for: lcdtest X# Date created: 23 Mar 2007 X# Whom: Your Name Here <yourname@example.com> X# X# $FreeBSD$ X# X XPORTNAME= lcdtest XPORTVERSION= 1.03 XCATEGORIES= sysutils XMASTER_SITES= http://www.brouhaha.com/%7Eeric/software/lcdtest/download/ X XMAINTAINER= ports@FreeBSD.org XCOMMENT= LCD monitor test pattern generator X XBUILD_DEPENDS= pngtopnm:${PORTSDIR}/graphics/netpbm X XUSE_GMAKE= yes XUSE_SDL= sdl image X X.if !defined(NOPORTDOCS) XPORTDOCS= README X.endif XMAKE_ENV+= CPPFLAGS="`sdl-config --cflags`" LOADLIBES="`sdl-config --libs`" XMAKE_ARGS= -o SDL/SDL.h -o SDL/SDL_image.h \ XCFLAGS="${CFLAGS} -DRELEASE=${PORTVERSION}" XPLIST_FILES= bin/lcdtest X Xdo-install: X ${INSTALL_PROGRAM} ${WRKSRC}/lcdtest ${PREFIX}/bin X.if !defined(NOPORTDOCS) X @${MKDIR} ${DOCSDIR} X ${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR} X.endif X X.include <bsd.port.mk> END-of-sysutils/lcdtest/Makefile echo x - sysutils/lcdtest/distinfo sed 's/^X//' >sysutils/lcdtest/distinfo << 'END-of-sysutils/lcdtest/distinfo' XMD5 (lcdtest-1.03.tar.gz) = 58427ceb4f938cce4380d551a8a04cf0 XSHA256 (lcdtest-1.03.tar.gz) = 6701efe2fa520b7957324c4a738c6e4b6670771a0da6fc225147690d6c1d8116 XSIZE (lcdtest-1.03.tar.gz) = 26739 END-of-sysutils/lcdtest/distinfo echo x - sysutils/lcdtest/pkg-descr sed 's/^X//' >sysutils/lcdtest/pkg-descr << 'END-of-sysutils/lcdtest/pkg-descr' Xlcdtest is a utility to display LCD monitor test patterns. It may be Xuseful for adjusting the pixel clock frequency and phase on LCD Xmonitors when using analog inputs, and for finding pixels that are Xstuck on or off. X XWWW: http://www.brouhaha.com/%7Eeric/software/lcdtest/ END-of-sysutils/lcdtest/pkg-descr exit
sat 2007-06-11 15:28:25 UTC FreeBSD ports repository Modified files: graphics/sdl_image Makefile Added files: graphics/sdl_image/files patch-sdl_image.segfault Log: - 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> Revision Changes Path 1.31 +1 -1 ports/graphics/sdl_image/Makefile 1.1 +164 -0 ports/graphics/sdl_image/files/patch-sdl_image.segfault (new) _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
State Changed From-To: open->patched Wait for Eric to decide if he wants to maintain the port.
Responsible Changed From-To: shaun->sat Grab.
sat 2007-06-16 08:43:57 UTC FreeBSD ports repository Modified files: graphics Makefile Added files: graphics/lcdtest Makefile distinfo pkg-descr Log: Add port graphics/lcdtest: lcdtest is a utility to display LCD monitor test patterns. It may be useful for adjusting the pixel clock frequency and phase on LCD monitors when using analog inputs, and for finding pixels that are stuck on or off. WWW: http://www.brouhaha.com/~eric/software/lcdtest/ Author: Eric Smith <eric@brouhaha.com> Note: there are newer versions, but they have unresolved bugs PR: ports/110018 (part of, based on) Submitted by: Eric P. Scott <eps+pbug0703@ana.com> Revision Changes Path 1.1079 +1 -0 ports/graphics/Makefile 1.1 +38 -0 ports/graphics/lcdtest/Makefile (new) 1.1 +3 -0 ports/graphics/lcdtest/distinfo (new) 1.1 +7 -0 ports/graphics/lcdtest/pkg-descr (new) _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
State Changed From-To: patched->closed Port committed. I assigned it to myself, but will be happy if Eric claims maitainership later on. Thanks!