diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-11-10 18:51:26 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-11-10 18:51:26 +0000 |
commit | cb265fec1b6213b1aa33d078122ad45ae01d9670 (patch) | |
tree | bb6a88669aca1d70dcae198ede57a06d91674ad6 | |
parent | bb677c9581b95720df6b28c375a3278d69e06f44 (diff) | |
download | glibc-cb265fec1b6213b1aa33d078122ad45ae01d9670.tar.gz glibc-cb265fec1b6213b1aa33d078122ad45ae01d9670.tar.xz glibc-cb265fec1b6213b1aa33d078122ad45ae01d9670.zip |
Update.
* posix/regexec.c (match_ctx_free_subtops): Remove, merge into... (match_ctx_clean): ... this function. (match_ctx_free): Call match_ctx_clean.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | posix/regexec.c | 39 |
2 files changed, 19 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog index 2088104c0f..474d36eaea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2004-11-09 Paolo Bonzini <bonzini@gnu.org> + * posix/regexec.c (match_ctx_free_subtops): Remove, merge into... + (match_ctx_clean): ... this function. + (match_ctx_free): Call match_ctx_clean. + * posix/regexec.c (transit_state): Remove the check for out-of-bounds buffers. (check_matching): Check here for out-of-bounds buffers. diff --git a/posix/regexec.c b/posix/regexec.c index e6d92577a7..79104119be 100644 --- a/posix/regexec.c +++ b/posix/regexec.c @@ -22,8 +22,6 @@ static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, int n) internal_function; static void match_ctx_clean (re_match_context_t *mctx) internal_function; static void match_ctx_free (re_match_context_t *cache) internal_function; -static void match_ctx_free_subtops (re_match_context_t *mctx) - internal_function; static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, int node, int str_idx, int from, int to) internal_function; @@ -4102,28 +4100,6 @@ static void match_ctx_clean (mctx) re_match_context_t *mctx; { - match_ctx_free_subtops (mctx); - mctx->nsub_tops = 0; - mctx->nbkref_ents = 0; -} - -/* Free all the memory associated with MCTX. */ - -static void -match_ctx_free (mctx) - re_match_context_t *mctx; -{ - match_ctx_free_subtops (mctx); - re_free (mctx->sub_tops); - re_free (mctx->bkref_ents); -} - -/* Free all the memory associated with MCTX->SUB_TOPS. */ - -static void -match_ctx_free_subtops (mctx) - re_match_context_t *mctx; -{ int st_idx; for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx) { @@ -4143,6 +4119,21 @@ match_ctx_free_subtops (mctx) } free (top); } + + mctx->nsub_tops = 0; + mctx->nbkref_ents = 0; +} + +/* Free all the memory associated with MCTX. */ + +static void +match_ctx_free (mctx) + re_match_context_t *mctx; +{ + /* First, free all the memory associated with MCTX->SUB_TOPS. */ + match_ctx_clean (mctx); + re_free (mctx->sub_tops); + re_free (mctx->bkref_ents); } /* Add a new backreference entry to MCTX. |