Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Mar 2007 15:22:12 -0800 (PST)
From:      "Eric P. Scott" <eps+pbug0703@ana.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/110018: graphics/sdl_image: SIGSEGV from IMG_ReadXPMFromArray()
Message-ID:  <200703062322.l26NMCwM009821@anna.ana.com>
Resent-Message-ID: <200703062330.l26NU6OH010115@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         110018
>Category:       ports
>Synopsis:       graphics/sdl_image: SIGSEGV from IMG_ReadXPMFromArray()
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Mar 06 23:30:05 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Eric P. Scott
>Release:        FreeBSD 6.2-RELEASE-p2 i386
>Organization:
ana-systems, Inc.
>Environment:
System: FreeBSD sixofone 6.2-RELEASE-p2 FreeBSD 6.2-RELEASE-p2 #0: Tue Feb 27 22:41:06 UTC 2007 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386
>Description:
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)
>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

>Fix:
None yet.

Bonus points for fixing the problem and committing a working lcdtest port.  ;-)
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703062322.l26NMCwM009821>