Memory error

[Netconf get/get-config :xpath capability does not support namespaces](https://github.com/clicon/clixon/issues/75)
This commit is contained in:
Olof Hagsand 2019-07-08 16:21:27 +00:00
parent 1f8c759f3d
commit 89f751357d
3 changed files with 5 additions and 33 deletions

View file

@ -69,7 +69,7 @@
### API changes on existing features (you may need to change your code)
* The Clixon API has been extended with namespaces, or namespace contexts in the following cases:
* The Clixon API has been extended with namespaces, or namespace contexts in the following cases [Netconf get/get-config :xpath capability does not support namespaces](https://github.com/clicon/clixon/issues/75)
* CLIspec functions have added namespace parameter:
* `cli_show_config <db> <format> <xpath>` --> `cli_show_config <db> <format> <xpath> <namespace>`
* `cli_copy_config <db> <xpath> ...` --> `cli_copy_config <db> <xpath> <namespace> ...`

View file

@ -191,7 +191,7 @@ api_data_get2(clicon_handle h,
yang_stmt *yspec;
cxobj *xret = NULL;
cxobj *xerr = NULL; /* malloced */
cxobj *xe = NULL;
cxobj *xe = NULL; /* not malloced */
cxobj **xvec = NULL;
size_t xlen;
int i;
@ -293,10 +293,10 @@ api_data_get2(clicon_handle h,
instance that does not exist, then an error response containing
a "404 Not Found" status-line MUST be returned by the server.
The error-tag value "invalid-value" is used in this case. */
if (netconf_invalid_value_xml(&xe, "application", "Instance does not exist") < 0)
if (netconf_invalid_value_xml(&xerr, "application", "Instance does not exist") < 0)
goto done;
/* override invalid-value default 400 with 404 */
if (api_return_err(h, r, xe, pretty, use_xml, 404) < 0)
if (api_return_err(h, r, xerr, pretty, use_xml, 404) < 0)
goto done;
goto ok;
}

View file

@ -121,7 +121,7 @@ netconf_invalid_value_xml(cxobj **xret,
char *message)
{
int retval =-1;
cxobj *xerr;
cxobj *xerr = NULL;
char *encstr = NULL;
if (*xret == NULL){
@ -162,7 +162,6 @@ netconf_invalid_value(cbuf *cb,
char *type,
char *message)
{
#if 1
int retval = -1;
cxobj *xret = NULL;
@ -175,33 +174,6 @@ netconf_invalid_value(cbuf *cb,
if (xret)
xml_free(xret);
return retval;
#else
int retval = -1;
char *encstr = NULL;
if (cprintf(cb, "<rpc-reply><rpc-error>"
"<error-type>%s</error-type>"
"<error-tag>invalid-value</error-tag>"
"<error-severity>error</error-severity>",
type) <0)
goto err;
if (message){
if (xml_chardata_encode(&encstr, "%s", message) < 0)
goto done;
if (cprintf(cb, "<error-message>%s</error-message>", encstr) < 0)
goto err;
}
if (cprintf(cb, "</rpc-error></rpc-reply>") <0)
goto err;
retval = 0;
done:
if (encstr)
free(encstr);
return retval;
err:
clicon_err(OE_XML, errno, "cprintf");
goto done;
#endif
}
/*! Create Netconf too-big error XML tree according to RFC 6241 Appendix A