X-Git-Url: http://git.droids-corp.org/?p=libcmdline.git;a=blobdiff_plain;f=src%2Fgenconf%2Fparse_confnode.c;h=b25166fce817452eba009cadb92815838c7a973f;hp=5c8202bdf99e694df64e31211e3fe0d6faf8050f;hb=b1d5b169352e57df3fc14c51ffad4b83f3e5613f;hpb=5dbaf53aa2c6187d464108e360621ebfff6e0bc4 diff --git a/src/genconf/parse_confnode.c b/src/genconf/parse_confnode.c index 5c8202b..b25166f 100644 --- a/src/genconf/parse_confnode.c +++ b/src/genconf/parse_confnode.c @@ -135,7 +135,8 @@ get_from_idx(struct confnode *n, unsigned int *cur, unsigned int idx, } int -parse_conf_node(cmdline_parse_token_hdr_t *tk, const char *buf, void *res) +parse_conf_node(cmdline_parse_token_hdr_t *tk, const char *buf, void *res, + unsigned ressize) { struct token_conf_node *tk2 = (struct token_conf_node *)tk; struct token_conf_node_data *tkd = &tk2->conf_node_data; @@ -144,6 +145,9 @@ parse_conf_node(cmdline_parse_token_hdr_t *tk, const char *buf, void *res) unsigned int token_len = 0; char token[CMDLINE_MAX_TOKEN_SIZE]; + if (res && ressize < sizeof(struct confnode *)) + return -1; + /* if token is too big... */ token_len = snprintf(token, sizeof(token), "%s", buf); if (token_len >= sizeof(token))