simple bug hunting done during rpm2html and rpmfind integration.
diff --git a/tree.c b/tree.c
index a477934..9e71b4d 100644
--- a/tree.c
+++ b/tree.c
@@ -427,7 +427,10 @@
 		     * Create a new REFERENCE_REF node
 		     */
 		    node = xmlNewReference(doc, val);
-		    if (node == NULL) return(ret);
+		    if (node == NULL) {
+			if (val != NULL) free(val);
+		        return(ret);
+		    }
 		    if (last == NULL)
 			last = ret = node;
 		    else {
@@ -534,9 +537,11 @@
 		    /*
 		     * Create a new REFERENCE_REF node
 		     */
-		    val = xmlStrndup(q, cur - q);
 		    node = xmlNewReference(doc, val);
-		    if (node == NULL) return(ret);
+		    if (node == NULL) {
+			if (val != NULL) free(val);
+		        return(ret);
+		    }
 		    if (last == NULL)
 			last = ret = node;
 		    else {