aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2005-04-27 11:38:33 +0800
committermarcus <marcus@FreeBSD.org>2005-04-27 11:38:33 +0800
commitf1ff17b65a2013d61fcdd4e25e2a9fecee07d5fc (patch)
tree5a67d3d78d23db893ef5b9084f10579113c7eacd
parentc782c844538578979c05d15bd8ab038c8eb2f485 (diff)
downloadfreebsd-ports-gnome-f1ff17b65a2013d61fcdd4e25e2a9fecee07d5fc.tar.gz
freebsd-ports-gnome-f1ff17b65a2013d61fcdd4e25e2a9fecee07d5fc.tar.zst
freebsd-ports-gnome-f1ff17b65a2013d61fcdd4e25e2a9fecee07d5fc.zip
Only process the var_args argument to open() if flags contain O_CREAT.
This avoids a bus error crash when using esddsp. PR: 80382
-rw-r--r--audio/esound/Makefile2
-rw-r--r--audio/esound/files/patch-esddsp.c18
2 files changed, 19 insertions, 1 deletions
diff --git a/audio/esound/Makefile b/audio/esound/Makefile
index d94f8666d479..36f660dd667a 100644
--- a/audio/esound/Makefile
+++ b/audio/esound/Makefile
@@ -7,7 +7,7 @@
PORTNAME= esound
PORTVERSION= 0.2.35
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= audio
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME}/0.2
diff --git a/audio/esound/files/patch-esddsp.c b/audio/esound/files/patch-esddsp.c
new file mode 100644
index 000000000000..c1175da944ab
--- /dev/null
+++ b/audio/esound/files/patch-esddsp.c
@@ -0,0 +1,18 @@
+--- esddsp.c.orig Tue Apr 26 22:41:23 2005
++++ esddsp.c Tue Apr 26 22:42:04 2005
+@@ -223,9 +223,12 @@ open (const char *pathname, int flags, .
+
+ dsp_init ();
+
+- va_start (args, flags);
+- mode = va_arg (args, mode_t);
+- va_end (args);
++ if ((flags & O_CREAT) != 0)
++ {
++ va_start (args, flags);
++ mode = va_arg (args, int);
++ va_end (args);
++ }
+
+ if (!strcmp (pathname, "/dev/dsp"))
+ {