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

David Henningsson david.henningsson at canonical.com
Fri Apr 10 03:41:30 PDT 2015


Ack, but add isinf too while you're at it?

On 2015-04-10 11:48, Tanu Kaskinen wrote:
> 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;



More information about the pulseaudio-discuss mailing list