diff options
author | Valeriy Van <valeriy.van@enote.com> | 2019-12-02 15:02:54 +0100 |
---|---|---|
committer | Valeriy Van <valeriy.van@enote.com> | 2019-12-02 15:02:54 +0100 |
commit | cda8623468750c1a6ac403290a838c589cd759b3 (patch) | |
tree | 5b17c9c52fed56943a2457ccbdd64aa557c5ef3c | |
parent | 51d177e938843cfd422a5cd13e782e85106daf12 (diff) | |
download | pugixml-cda8623468750c1a6ac403290a838c589cd759b3.zip pugixml-cda8623468750c1a6ac403290a838c589cd759b3.tar.gz pugixml-cda8623468750c1a6ac403290a838c589cd759b3.tar.bz2 |
Fixing possible null pointer dereference
-rw-r--r-- | src/pugixml.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp index 1f08b10..80fe605 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -6264,15 +6264,17 @@ namespace pugi return found.parent().first_element_by_path(next_segment, delimiter); else { - for (xml_node_struct* j = found._root->first_child; j; j = j->next_sibling) - { - if (j->name && impl::strequalrange(j->name, path_segment, static_cast<size_t>(path_segment_end - path_segment))) - { - xml_node subsearch = xml_node(j).first_element_by_path(next_segment, delimiter); - - if (subsearch) return subsearch; - } - } + if (found._root) { + for (xml_node_struct* j = found._root->first_child; j; j = j->next_sibling) + { + if (j->name && impl::strequalrange(j->name, path_segment, static_cast<size_t>(path_segment_end - path_segment))) + { + xml_node subsearch = xml_node(j).first_element_by_path(next_segment, delimiter); + + if (subsearch) return subsearch; + } + } + } return xml_node(); } |