X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fregex%2Fregexec.c;h=253b0e1495601567cca31ea27dceca744fcdbfcb;hb=6aeb9c6703670649ee09b3c8575fb428168bb75c;hp=5c4cb9224e7bd7709152f1457723518962801b7b;hpb=aee6abb2400b9a955c2b41166db1c22f63ad42ef;p=musl diff --git a/src/regex/regexec.c b/src/regex/regexec.c index 5c4cb922..253b0e14 100644 --- a/src/regex/regexec.c +++ b/src/regex/regexec.c @@ -215,15 +215,15 @@ tre_tnfa_run_parallel(const tre_tnfa_t *tnfa, const void *string, /* Ensure that tbytes and xbytes*num_states cannot overflow, and that * they don't contribute more than 1/8 of SIZE_MAX to total_bytes. */ if (num_tags > SIZE_MAX/(8 * sizeof(regoff_t) * tnfa->num_states)) - goto error_exit; + return REG_ESPACE; /* Likewise check rbytes. */ if (tnfa->num_states+1 > SIZE_MAX/(8 * sizeof(*reach_next))) - goto error_exit; + return REG_ESPACE; /* Likewise check pbytes. */ if (tnfa->num_states > SIZE_MAX/(8 * sizeof(*reach_pos))) - goto error_exit; + return REG_ESPACE; /* Compute the length of the block we need. */ tbytes = sizeof(*tmp_tags) * num_tags;