Browse Source

Merge pull request #3908 from assimp/fix_nullptr_dereferences

Fix possible nullptr dereferences.
Kim Kulling 4 years ago
parent
commit
79da512e99
1 changed files with 13 additions and 0 deletions
  1. 13 0
      include/assimp/XmlParser.h

+ 13 - 0
include/assimp/XmlParser.h

@@ -174,6 +174,11 @@ public:
         return false;
     }
 
+    /// @brief  Will return truem if a root node is there.
+    /// @return true in case of an existing root.
+    bool hasRoot() const {
+        return nullptr != mDoc;
+    }
     /// @brief  Will return the document pointer, is nullptr if no xml-file was parsed.
     /// @return The pointer showing to the document.
     pugi::xml_document *getDocument() const {
@@ -183,12 +188,20 @@ public:
     /// @brief  Will return the root node, const version.
     /// @return The root node.
     const TNodeType getRootNode() const {
+        static pugi::xml_node none;
+        if (nullptr == mDoc) {
+            return none;
+        }
         return mDoc->root();
     }
 
     /// @brief  Will return the root node, non-const version.
     /// @return The root node.
     TNodeType getRootNode() {
+        static pugi::xml_node none;
+        if (nullptr == mDoc) {
+            return none;
+        }
         return mDoc->root();
     }