summaryrefslogtreecommitdiffstats
path: root/src/xml.c
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-02-20 08:06:16 (EST)
committer P. J. McDermott <pjm@nac.net>2013-02-20 08:06:16 (EST)
commit4c79651326eeabc2a53534a3b8b1b5aff885dd5a (patch)
tree7adbc176b69b290629ca1bb6e3408f41132e3498 /src/xml.c
parentb87ba33f92354fca6d9cbb8ad76f62bc01233787 (diff)
downloadoverworld-rpg-4c79651326eeabc2a53534a3b8b1b5aff885dd5a.zip
overworld-rpg-4c79651326eeabc2a53534a3b8b1b5aff885dd5a.tar.gz
overworld-rpg-4c79651326eeabc2a53534a3b8b1b5aff885dd5a.tar.bz2
Prevent segmentation faults in some places.
Diffstat (limited to 'src/xml.c')
-rw-r--r--src/xml.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/xml.c b/src/xml.c
index e677fe1..d34b0ac 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -126,9 +126,15 @@ xml_node_pop(XML_Parser p)
free(n);
n = (struct xml_node *) XML_GetUserData(p);
- XML_SetStartElementHandler(p, n->start);
- XML_SetEndElementHandler(p, n->end);
- XML_SetCharacterDataHandler(p, n->charhndl);
+ if (n == NULL) {
+ XML_SetStartElementHandler(p, NULL);
+ XML_SetEndElementHandler(p, NULL);
+ XML_SetCharacterDataHandler(p, NULL);
+ } else {
+ XML_SetStartElementHandler(p, n->start);
+ XML_SetEndElementHandler(p, n->end);
+ XML_SetCharacterDataHandler(p, n->charhndl);
+ }
return data;
}