From 93ced0fac2dc8ed0e50cf94f446b43341a670f86 Mon Sep 17 00:00:00 2001 From: Robert Kessl Date: Thu, 17 Jul 2014 13:54:50 +0200 Subject: [PATCH] xtypes: bugfix in xt_bool_parse, code cleanup --- ucw/xtypes-basic.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ucw/xtypes-basic.c b/ucw/xtypes-basic.c index fdb4f339..01247ebb 100644 --- a/ucw/xtypes-basic.c +++ b/ucw/xtypes-basic.c @@ -65,8 +65,8 @@ static const char *xt_double_parse(const char *str, void *dest, struct mempool * size_t sz = strlen(str); errno = 0; double result = strtod(str, &endptr); - if(endptr != str + sz) return "Could not parse double"; - if(errno == ERANGE) return "Could not parse double: overflow happend during parsing"; + if(endptr != str + sz) return "Could not parse double."; + if(errno == ERANGE) return "Could not parse double: overflow happend during parsing."; *((double *) dest) = result; @@ -97,7 +97,9 @@ static const char *xt_bool_format(void *src, u32 fmt UNUSED, struct mempool *poo static const char *xt_bool_parse(const char *str, void *dest, struct mempool *pool UNUSED) { - if(str[1] == 0) { // FIXME: Possible segfault + if(!str) return "Cannot parse bool: string is NULL."; + + if(str[1] == 0) { if(str[0] == '1') { *((bool *)dest) = false; return NULL; @@ -118,7 +120,7 @@ static const char *xt_bool_parse(const char *str, void *dest, struct mempool *po return NULL; } - return "Could not parse bool"; + return "Could not parse bool."; } const struct xtype xt_bool = { -- 2.39.2