diff options
| author | K.Takata <kentkt@csc.jp> | 2019-07-29 20:15:26 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-01-12 20:01:43 +0900 |
| commit | f0b31a5898ae8101286dc47085139c56ba0bda54 (patch) | |
| tree | 117369cb1eb0817684e261b44f7b16473a4be024 | |
| parent | 496e74d0ccedd513eca9a156b207a36ed88e484f (diff) | |
[k-takata/Onigmo] Fix SEGV in onig_error_code_to_str() (Fix
https://github.com/k-takata/Onigmo/pull/132)
When onig_new(ONIG_SYNTAX_PERL) fails with ONIGERR_INVALID_GROUP_NAME,
onig_error_code_to_str() crashes.
onig_scan_env_set_error_string() should have been used when returning
ONIGERR_INVALID_GROUP_NAME.
https://github.com/k-takata/Onigmo/commit/00cc7e28a3
| -rw-r--r-- | regparse.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/regparse.c b/regparse.c index c61a8b28a2..1772196bcd 100644 --- a/regparse.c +++ b/regparse.c @@ -4043,7 +4043,11 @@ fetch_token(OnigToken* tok, UChar** src, UChar* end, ScanEnv* env) if (c == 'R' || c == '0') { PINC; /* skip 'R' / '0' */ - if (!PPEEK_IS(')')) return ONIGERR_INVALID_GROUP_NAME; + if (!PPEEK_IS(')')) { + r = ONIGERR_INVALID_GROUP_NAME; + onig_scan_env_set_error_string(env, r, p - 1, p + 1); + return r; + } PINC; /* skip ')' */ name_end = name = p; gnum = 0; |
