- some extra checks to xml handling to avoid crashes on missing properties
authorpmatilai <pmatilai>
Mon, 29 May 2006 17:28:25 +0000 (17:28 +0000)
committerpmatilai <pmatilai>
Mon, 29 May 2006 17:28:25 +0000 (17:28 +0000)
  and such (eg with createrepo -n)

apt-pkg/rpm/rpmhandler.cc

index 2784a08..36480f4 100644 (file)
@@ -1033,8 +1033,10 @@ string RPMRepomdHandler::FindTag(xmlNode *Node, string Tag)
    string str = "";
    if (n) {
       xmlChar *content = xmlNodeGetContent(n);
-      str = (char*)content;
-      xmlFree(content);
+      if (content) {
+        str = (char*)content;
+        xmlFree(content);
+      }
    }
    return str;
 }
@@ -1044,8 +1046,10 @@ string RPMRepomdHandler::GetProp(xmlNode *Node, char *Prop)
    string str = "";
    if (Node) {
       xmlChar *prop = xmlGetProp(Node, (xmlChar*)Prop);
-      str = (char*)prop;
-      xmlFree(prop);
+      if (prop) {
+        str = (char*)prop;
+        xmlFree(prop);
+      }
    }
    return str;
 }
@@ -1104,8 +1108,10 @@ string RPMRepomdHandler::Directory()
    string str = "";
    if ((n = FindNode("location"))) {
       xmlChar *prop = xmlGetProp(n, (xmlChar*)"href");
-      str = dirname((char*)prop);
-      xmlFree(prop);
+      if (prop) {
+        str = dirname((char*)prop);
+        xmlFree(prop);
+      }
    }
    return str;
 }