[nas] nasd SIGFPE

Jon Trulson jon at radscan.com
Fri Apr 23 16:59:27 MDT 2004


On Fri, 19 Mar 2004, Tobias Diedrich wrote:

> From: Tobias Diedrich <ranma at gmx.at>
> Date: Fri, 19 Mar 2004 02:06:51 +0100
> Subject: [nas] nasd SIGFPE
> To: nas at radscan.com
> X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=no
> 	version=2.60
>
> I can reproducably crash nasd:
>


	Sorry it took so long to look at this... It needed some
investigation.  Please try the attached patch and see if that helps.  It
will ensure that the samplerate is rounded up or down as neccessary to
ensure it fits within the parameters of your soundcard config.  I think
this is reasonable behavior...

	It's certainly better than crashing :)

[...]

-- 
Jon Trulson    mailto:jon at radscan.com
ID: 1A9A2B09, FP: C23F328A721264E7 B6188192EC733962
PGP keys at http://radscan.com/~jon/PGPKeys.txt
#include <std/disclaimer.h>
"I am Nomad." -Nomad
-------------- next part --------------
Index: server/dia/auprocess.c
===================================================================
RCS file: /home/jon/src/repository/nas/server/dia/auprocess.c,v
retrieving revision 1.2
diff -u -r1.2 auprocess.c
--- server/dia/auprocess.c	1999/09/05 02:43:12	1.2
+++ server/dia/auprocess.c	2004/04/23 22:47:44
@@ -1270,23 +1270,20 @@
 	writeMonitor
     };
 
-    if (rate)
-    {
-	if (rate > auSetup.maxSampleRate)
-	    rate = auSetup.maxSampleRate;
-
-	if (rate < auSetup.minSampleRate)
-	    rate = auSetup.minSampleRate;
-
-	if (auCurrentSampleRate != rate)
-	    if (CallbackExists(AuSetSampleRateCB))
-	    {
-		auCurrentSampleRate = rate =
-		    (AuUint32) AuCallback(AuSetSampleRateCB, (rate));
-	    }
-	    else
-		auCurrentSampleRate = rate;
-    }
+    if (rate > auSetup.maxSampleRate)
+      rate = auSetup.maxSampleRate;
+    
+    if (rate < auSetup.minSampleRate)
+      rate = auSetup.minSampleRate;
+    
+    if (auCurrentSampleRate != rate)
+      if (CallbackExists(AuSetSampleRateCB))
+        {
+          auCurrentSampleRate = rate =
+            (AuUint32) AuCallback(AuSetSampleRateCB, (rate));
+        }
+      else
+        auCurrentSampleRate = rate;
 
     for (i = 0; i < fl->numOutputs; i++)
     {


More information about the Nas mailing list