fixed segv with unmatched restconf keys in uri
This commit is contained in:
parent
7113026e17
commit
c156832234
1 changed files with 5 additions and 4 deletions
|
|
@ -643,18 +643,19 @@ match_list_keys(yang_stmt *y,
|
||||||
char *keyd;
|
char *keyd;
|
||||||
|
|
||||||
if (y->ys_keyword != Y_LIST &&y->ys_keyword != Y_LEAF_LIST)
|
if (y->ys_keyword != Y_LIST &&y->ys_keyword != Y_LEAF_LIST)
|
||||||
return -1;
|
goto done;
|
||||||
cvk = y->ys_cvec; /* Use Y_LIST cache, see ys_populate_list() */
|
cvk = y->ys_cvec; /* Use Y_LIST cache, see ys_populate_list() */
|
||||||
cvi = NULL;
|
cvi = NULL;
|
||||||
while ((cvi = cvec_each(cvk, cvi)) != NULL) {
|
while ((cvi = cvec_each(cvk, cvi)) != NULL) {
|
||||||
keyname = cv_string_get(cvi);
|
keyname = cv_string_get(cvi);
|
||||||
if ((xkeya = xml_find(xapipath, keyname)) == NULL)
|
if ((xkeya = xml_find(xapipath, keyname)) == NULL)
|
||||||
goto done; /* No key in api-path */
|
goto done; /* No key in api-path */
|
||||||
|
if ((keya = xml_body(xkeya)) == NULL)
|
||||||
keya = xml_body(xkeya);
|
goto done;
|
||||||
if ((xkeyd = xml_find(xdata, keyname)) == NULL)
|
if ((xkeyd = xml_find(xdata, keyname)) == NULL)
|
||||||
goto done; /* No key in data */
|
goto done; /* No key in data */
|
||||||
keyd = xml_body(xkeyd);
|
if ((keyd = xml_body(xkeyd)) == NULL)
|
||||||
|
goto done;
|
||||||
if (strcmp(keya, keyd) != 0)
|
if (strcmp(keya, keyd) != 0)
|
||||||
goto done; /* keys dont match */
|
goto done; /* keys dont match */
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue