From: Jarkko Hietaniemi Date: Mon, 1 Oct 2001 14:08:26 +0000 (+0000) Subject: Be careful to pull chars from the varargs stack when X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0da60cf5bdbc37955569c69225af7f1d6b5bb35a;p=p5sagit%2Fp5-mst-13.2.git Be careful to pull chars from the varargs stack when formatting chars. p4raw-id: //depot/perl@12292 --- diff --git a/regcomp.c b/regcomp.c index 96bafd3..69fe024 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--;