From 0da60cf5bdbc37955569c69225af7f1d6b5bb35a Mon Sep 17 00:00:00 2001 From: Jarkko Hietaniemi Date: Mon, 1 Oct 2001 14:08:26 +0000 Subject: [PATCH] Be careful to pull chars from the varargs stack when formatting chars. p4raw-id: //depot/perl@12292 --- regcomp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/regcomp.c b/regcomp.c index 96bafd3162..69fe024fc4 100644 --- a/regcomp.c +++ b/regcomp.c @@ -2879,9 +2879,10 @@ tryagain: /* a lovely hack--pretend we saw [\pX] instead */ RExC_end = strchr(RExC_parse, '}'); if (!RExC_end) { + U8 c = (U8)*RExC_parse; RExC_parse += 2; RExC_end = oldregxend; - vFAIL2("Missing right brace on \\%c{}", UCHARAT(RExC_parse - 2)); + vFAIL2("Missing right brace on \\%c{}", c); } RExC_end++; } @@ -3421,13 +3422,14 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state) case 'p': case 'P': if (*RExC_parse == '{') { + U8 c = (U8)value; e = strchr(RExC_parse++, '}'); if (!e) - vFAIL2("Missing right brace on \\%c{}", value); + vFAIL2("Missing right brace on \\%c{}", c); while (isSPACE(UCHARAT(RExC_parse))) RExC_parse++; if (e == RExC_parse) - vFAIL2("Empty \\%c{}", value); + vFAIL2("Empty \\%c{}", c); n = e - RExC_parse; while (isSPACE(UCHARAT(RExC_parse + n - 1))) n--; -- 2.34.1