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:
@@ -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)
|
||||||
|
Reference in New Issue
Block a user