XML namespace merge bug fixed. Example: two xmlns attributes could both survive a merge whereas one should replace the other.

This commit is contained in:
Olof hagsand 2020-02-05 19:49:23 +01:00
parent 3d5c2cc678
commit a2b1674708
2 changed files with 2 additions and 1 deletions

View file

@ -9,6 +9,7 @@ Patch release based on testing by Dave Cornejo, Netgate
* From a cli perspective this is a revert to 4.1 behaviour, where the cli does not immediately exit on start if the backend is not running, but with the new session-id function * From a cli perspective this is a revert to 4.1 behaviour, where the cli does not immediately exit on start if the backend is not running, but with the new session-id function
### Corrected Bugs ### Corrected Bugs
* XML namespace merge bug fixed. Example: two xmlns attributes could both survive a merge whereas one should replace the other.
* Compile option `VALIDATE_STATE_XML` introduced in `include/custom.h` to control whether code for state data validation is compiled or not. * Compile option `VALIDATE_STATE_XML` introduced in `include/custom.h` to control whether code for state data validation is compiled or not.
* Fixed: Validation of user state data led to wrong validation, if state relied on config data, eg leafref/must/when etc. * Fixed: Validation of user state data led to wrong validation, if state relied on config data, eg leafref/must/when etc.
* Fixed: No revision in yang module led to errors in validation of state data * Fixed: No revision in yang module led to errors in validation of state data

View file

@ -1216,7 +1216,7 @@ check_namespaces(cxobj *x0, /* source */
} }
else{ /* No, namespace does not exist in x1 _parent_ else{ /* No, namespace does not exist in x1 _parent_
* Check if it is exists in x1 itself */ * Check if it is exists in x1 itself */
if (nscache_get_prefix(x1, namespace, &pexist) == 1){ if (xml2prefix(x1, namespace, &pexist) == 1){
/* Yes it exists, but is it equal? */ /* Yes it exists, but is it equal? */
if ((pexist == NULL && prefix0 == NULL) || if ((pexist == NULL && prefix0 == NULL) ||
(pexist && prefix0 && (pexist && prefix0 &&