cmdline: parse() method does not return token_len anymore
[libcmdline.git] / src / genconf / parse_confnode.c
index 033e45d..382bfde 100644 (file)
@@ -133,7 +133,7 @@ parse_conf_node(cmdline_parse_token_hdr_t *tk, const char *buf, void *res,
        if (res)
                *(struct confnode **)res = TAILQ_FIRST(&l);
 
-       return token_len;
+       return 0;
 }
 
 struct confnode_complete_callback {
@@ -198,6 +198,7 @@ complete_conf_node_start(cmdline_parse_token_hdr_t *tk,
        unsigned flags = tkd->flags;
        unsigned mask = tkd->mask;
 
+       *opaque = NULL;
        cb = malloc(sizeof(*cb));
        if (cb == NULL)
                return -1;
@@ -241,7 +242,8 @@ complete_conf_node_iterate(cmdline_parse_token_hdr_t *tk, void **opaque,
 static void
 complete_conf_node_end(cmdline_parse_token_hdr_t *tk, void **opaque)
 {
-       free(*opaque);
+       if (*opaque)
+               free(*opaque);
 }
 
 int help_conf_node(cmdline_parse_token_hdr_t *tk, char *dstbuf, unsigned int size)