aboutsummaryrefslogtreecommitdiffstats
path: root/audio/esound/files
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 /audio/esound/files
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
Diffstat (limited to 'audio/esound/files')
-rw-r--r--audio/esound/files/patch-esddsp.c18
1 files changed, 18 insertions, 0 deletions
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"))
+ {