another one
[project/uci.git] / util.c
diff --git a/util.c b/util.c
index 3358cdf22edf5e78eb3b271ec3c1e7395437f641..e1ef5858700ce4b109cd6a1e345048447212d398 100644 (file)
--- a/util.c
+++ b/util.c
@@ -107,6 +107,7 @@ static inline bool uci_validate_text(const char *str)
                if ((*str == '\r') || (*str == '\n') ||
                        ((*str < 32) && (*str != '\t')))
                        return false;
                if ((*str == '\r') || (*str == '\n') ||
                        ((*str < 32) && (*str != '\t')))
                        return false;
+               str++;
        }
        return true;
 }
        }
        return true;
 }
@@ -135,7 +136,8 @@ int uci_parse_tuple(struct uci_context *ctx, char *str, char **package, char **s
 
        *section = strsep(&str, ".");
        *option = NULL;
 
        *section = strsep(&str, ".");
        *option = NULL;
-       *value = NULL;
+       if (value)
+               *value = NULL;
        if (!*section)
                goto lastval;
 
        if (!*section)
                goto lastval;
 
@@ -157,7 +159,7 @@ lastval:
                goto error;
        if (*option && !uci_validate_name(*option))
                goto error;
                goto error;
        if (*option && !uci_validate_name(*option))
                goto error;
-       if (*value && !uci_validate_text(*value))
+       if (value && *value && !uci_validate_text(*value))
                goto error;
 
        goto done;
                goto error;
 
        goto done;