aboutsummaryrefslogtreecommitdiff
path: root/multimedia/libdvdnav
diff options
context:
space:
mode:
authorGanael LAPLANCHE <martymac@FreeBSD.org>2012-08-01 12:40:29 +0000
committerGanael LAPLANCHE <martymac@FreeBSD.org>2012-08-01 12:40:29 +0000
commit161203d4b22758b8794974b7a47ec6faeeb3bf1a (patch)
treebaed9a3583567ec70d6608d9b536688f1a651314 /multimedia/libdvdnav
parent029333b1d2b9446b86ee07f97502481e37b19259 (diff)
downloadports-161203d4b22758b8794974b7a47ec6faeeb3bf1a.tar.gz
ports-161203d4b22758b8794974b7a47ec6faeeb3bf1a.zip
Notes
Diffstat (limited to 'multimedia/libdvdnav')
-rw-r--r--multimedia/libdvdnav/Makefile16
-rw-r--r--multimedia/libdvdnav/files/patch-src-searching.c43
2 files changed, 56 insertions, 3 deletions
diff --git a/multimedia/libdvdnav/Makefile b/multimedia/libdvdnav/Makefile
index fe32531a2d44..18d30b04f078 100644
--- a/multimedia/libdvdnav/Makefile
+++ b/multimedia/libdvdnav/Makefile
@@ -7,6 +7,7 @@
PORTNAME= libdvdnav
PORTVERSION= 4.2.0
+PORTREVISION= 1
CATEGORIES= multimedia
# Svn repository URL : svn://svn.mplayerhq.hu/dvdnav/trunk/libdvdnav
MASTER_SITES= http://dvdnav.mplayerhq.hu/releases/ \
@@ -18,7 +19,7 @@ COMMENT= MPlayer version of the libdvdnav project
LICENSE= GPLv2
-LIB_DEPENDS= dvdread.4:${PORTSDIR}/multimedia/libdvdread
+LIB_DEPENDS= dvdread:${PORTSDIR}/multimedia/libdvdread
USE_BZIP2= yes
HAS_CONFIGURE= yes
@@ -29,14 +30,23 @@ CONFIGURE_ARGS= --prefix="${PREFIX}" \
--shlibdir="${PREFIX}/lib" \
--incdir="${PREFIX}/include/dvdnav" \
--disable-opts \
- --disable-debug \
--cc="${CC}"
USE_GMAKE= yes
CONFLICTS= libdvdnav-mplayer-[0-9]*
USE_LDCONFIG= yes
+OPTIONS_DEFINE= DEBUG
+
+.include <bsd.port.pre.mk>
+
+.if ${PORT_OPTIONS:MDEBUG}
+CONFIGURE_ARGS+= --enable-debug --disable-strip
+.else
+CONFIGURE_ARGS+= --disable-debug
+.endif
+
post-patch:
@${REINPLACE_CMD} -e 's|^threadlib="-lpthread"|threadlib="${PTHREAD_LIBS}"|g' \
${WRKSRC}/configure2
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/multimedia/libdvdnav/files/patch-src-searching.c b/multimedia/libdvdnav/files/patch-src-searching.c
new file mode 100644
index 000000000000..0bb6b8cdb2ab
--- /dev/null
+++ b/multimedia/libdvdnav/files/patch-src-searching.c
@@ -0,0 +1,43 @@
+From 49c67ccf88c688e0e0e9e3b04f651b12c7d7f7f3 Mon Sep 17 00:00:00 2001
+From: Erik Hovland <erik@hovland.org>
+Date: Mon, 16 Apr 2012 14:56:43 -0700
+Subject: [PATCH] Check cell new row before using it to index into
+ cell_playback
+
+cellnr is used to index into cell_playback after subtracting
+one from it. If cellnr is 0, then it will index -1 in cell_playback
+which will seek out of boundary of cell_playback. This manifested into a
+segfault for some users as reported by this launchpad bug:
+https://bugs.launchpad.net/ubuntu/+source/libdvdnav/+bug/934471
+
+By checking cellnr and skipping the indexing if cellnr is equal to zero
+then we avoid the segfault. There might be a bigger issue w/ regard to
+retrieving a value of zero for cell new row, but this fix works for the
+reporter.
+
+Thanks goes to Sylvain Henry (hsyl20 AT gmail DOT com for both
+reporting the bug to launchpad and submitting a potential patch (even
+though we went w/ a different fix).
+---
+ src/searching.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/searching.c b/src/searching.c
+index 3649e9d..0b5f22a 100644
+--- src/searching.c
++++ src/searching.c
+@@ -640,7 +640,11 @@ uint32_t dvdnav_describe_title_chapters(dvdnav_t *this, int32_t title, uint64_t
+ goto fail;
+ }
+
+- cellnr = pgc->program_map[ptt[i].pgn-1];
++ if ((cellnr = pgc->program_map[ptt[i].pgn-1]) == 0) {
++ printerr("Cell new row cannot be 0");
++ continue;
++ }
++
+ if(ptt[i].pgn < pgc->nr_of_programs)
+ endcellnr = pgc->program_map[ptt[i].pgn];
+ else
+--
+1.7.10.3