1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-08-08 17:42:14 +03:00

Fix potential NULL pointer dereferences in regexp code

https://bugzilla.gnome.org/show_bug.cgi?id=707749

Fix 3 cases where we might dereference NULL
This commit is contained in:
Gaurav
2013-09-11 14:59:06 +08:00
committed by Daniel Veillard
parent 2205ff4b0d
commit 2671b013d8

View File

@@ -3162,8 +3162,10 @@ xmlFARegExecRollBack(xmlRegExecCtxtPtr exec) {
exec->status = -6; exec->status = -6;
return; return;
} }
memcpy(exec->counts, exec->rollbacks[exec->nbRollbacks].counts, if (exec->counts) {
memcpy(exec->counts, exec->rollbacks[exec->nbRollbacks].counts,
exec->comp->nbCounters * sizeof(int)); exec->comp->nbCounters * sizeof(int));
}
} }
#ifdef DEBUG_REGEXP_EXEC #ifdef DEBUG_REGEXP_EXEC
@@ -4091,7 +4093,7 @@ rollback:
*/ */
exec->determinist = 0; exec->determinist = 0;
xmlFARegExecRollBack(exec); xmlFARegExecRollBack(exec);
if (exec->status == 0) { if ((exec->inputStack != NULL ) && (exec->status == 0)) {
value = exec->inputStack[exec->index].value; value = exec->inputStack[exec->index].value;
data = exec->inputStack[exec->index].data; data = exec->inputStack[exec->index].data;
#ifdef DEBUG_PUSH #ifdef DEBUG_PUSH
@@ -4306,7 +4308,7 @@ xmlRegExecGetValues(xmlRegExecCtxtPtr exec, int err,
(*nbval)++; (*nbval)++;
} }
} else { } else {
if ((exec->comp->states[trans->to] != NULL) && if ((exec->comp != NULL) && (exec->comp->states[trans->to] != NULL) &&
(exec->comp->states[trans->to]->type != (exec->comp->states[trans->to]->type !=
XML_REGEXP_SINK_STATE)) { XML_REGEXP_SINK_STATE)) {
if (atom->neg) if (atom->neg)