open-src/xserver/xorg/xf86OSRingBell.patch
changeset 931 e0243b82efa9
parent 930 1d5fde7d897b
child 932 60aa9968b50f
--- a/open-src/xserver/xorg/xf86OSRingBell.patch	Thu Mar 25 21:43:39 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-From 288f900fb1bc9763c614beea3200579cba2f7b7c Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <[email protected]>
-Date: Mon, 15 Feb 2010 11:25:28 -0800
-Subject: [PATCH] Solaris xf86OSRingBell() off-by-one error in filling iov[] array
-
-When generating sound buffers for /dev/audio bells, insert waveform
-for beep *or* silence, but not both, so we don't write one entry past
-the end of the iov buffer when the final bit of soundwave ends up in
-the final entry allocated in the iov array.
-
-Fixes OpenSolaris bug 6894890:
- http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6894890
-
-Signed-off-by: Alan Coopersmith <[email protected]>
----
- hw/xfree86/os-support/solaris/sun_bell.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/hw/xfree86/os-support/solaris/sun_bell.c b/hw/xfree86/os-support/solaris/sun_bell.c
-index 7f146ea..05d1749 100644
---- a/hw/xfree86/os-support/solaris/sun_bell.c
-+++ b/hw/xfree86/os-support/solaris/sun_bell.c
-@@ -126,14 +126,15 @@ xf86OSRingBell(int loudness, int pitch, int duration)
-     iovcnt = 0;
- 
-     for (cnt = 0; cnt <= repeats; cnt++) {
--        iov[iovcnt].iov_base = (char *) samples;
--        iov[iovcnt++].iov_len = sizeof(samples);
-         if (cnt == repeats) {
-             /* Insert a bit of silence so that multiple beeps are distinct and
-              * not compressed into a single tone.
-              */
-             iov[iovcnt].iov_base = (char *) silence;
-             iov[iovcnt++].iov_len = sizeof(silence);
-+        } else {
-+            iov[iovcnt].iov_base = (char *) samples;
-+            iov[iovcnt++].iov_len = sizeof(samples);
-         }
-         if ((iovcnt >= IOV_MAX) || (cnt == repeats)) {
-             written = writev(audioFD, iov, iovcnt);
--- 
-1.5.6.5
-