diff --git a/ChangeLog b/ChangeLog index b04c9da5..b22fd571 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Nov 7 14:32:55 CET 2001 Daniel Veillard + + * debugXML.c: Heiko Rupp pointed that the shell would crash + on empty nodesets returns. + Wed Nov 7 13:52:36 CET 2001 Daniel Veillard * Makefile.am: Weiqi Gao pointed out that xmlcatalog diff --git a/debugXML.c b/debugXML.c index 3c3130e6..98705020 100644 --- a/debugXML.c +++ b/debugXML.c @@ -2038,6 +2038,9 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input, case XPATH_NODESET:{ int indx; + if (list->nodesetval == NULL) + break; + for (indx = 0; indx < list->nodesetval->nodeNr; indx++) { @@ -2112,13 +2115,18 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input, "%s: no such node\n", arg); break; case XPATH_NODESET: - if (list->nodesetval->nodeNr == 1) { - ctxt->node = list->nodesetval->nodeTab[0]; + if (list->nodesetval != NULL) { + if (list->nodesetval->nodeNr == 1) { + ctxt->node = list->nodesetval->nodeTab[0]; + } else + xmlGenericError(xmlGenericErrorContext, + "%s is a %d Node Set\n", + arg, + list->nodesetval->nodeNr); } else xmlGenericError(xmlGenericErrorContext, - "%s is a %d Node Set\n", - arg, - list->nodesetval->nodeNr); + "%s is an empty Node Set\n", + arg); break; case XPATH_BOOLEAN: xmlGenericError(xmlGenericErrorContext, @@ -2183,6 +2191,9 @@ xmlShell(xmlDocPtr doc, char *filename, xmlShellReadlineFunc input, case XPATH_NODESET:{ int indx; + if (list->nodesetval == NULL) + break; + for (indx = 0; indx < list->nodesetval->nodeNr; indx++) {