[pulseaudio-discuss] [PATCH] core-util: Filter out not-a-numbers in pa_atod()

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Fri Apr 10 02:48:33 PDT 2015


We don't and probably never will have any pa_atod() callers that would
require "NaN" to be accepted, so let's filter those out in pa_atod(),
instead of requiring the callers to handle not-a-numbers appropriately
(which they generally forget to do).
---
 src/pulsecore/core-util.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index 1dad507..4526306 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -23,6 +23,7 @@
 #include <config.h>
 #endif
 
+#include <math.h>
 #include <stdarg.h>
 #include <stdlib.h>
 #include <signal.h>
@@ -2448,6 +2449,11 @@ int pa_atod(const char *s, double *ret_d) {
         return -1;
     }
 
+    if (isnan(f)) {
+        errno = EINVAL;
+        return -1;
+    }
+
     *ret_d = f;
 
     return 0;
-- 
1.9.3



More information about the pulseaudio-discuss mailing list