Skip Menu |
Report information
Id: 129157
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: brian.carpenter [at] gmail.com
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)



Subject: Assertion `((((U8)((*(((const U8*)(PL_parser->oldoldbufptr))+1 )) | 0)) & 0xC0) == 0x80)' failed (toke.c:525)
Download (untitled) / with headers
text/plain 3.3k
v5.25.4-25-g109ac34* Minimizing this testcase with afl-tmin caused this assertion to be replaced with the one from bug #129037. ./perl assert556 Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0xc3, immediately after start byte 0xc3) at assert556 line 2. Malformed UTF-8 character (unexpected non-continuation byte 0x74, immediately after start byte 0xc3) at assert556 line 2. Bareword found where operator expected at assert556 line 2, near ""9 "Y" (Missing operator before Y?) Wide character in print at assert556 line 86. Bareword found where operator expected at assert556 line 86, near "▒▒▒▒▒▒▒▒tprotobyname"; "9 "Y=n {pop and-p[p };shmread $^H LLLLL_'_" perl: toke.c:525: void S_no_op(const char *const, char *): Assertion `((((U8)((*(((const U8*)(PL_parser->oldoldbufptr))+1 )) | 0)) & 0xC0) == 0x80)' failed. Aborted. #0 0x00007ffff6cf2067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff6cf3448 in __GI_abort () at abort.c:89 #2 0x00007ffff6ceb266 in __assert_fail_base (fmt=0x7ffff6e24238 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0xd5ae80 <.str1033> "((((U8)((*(((const U8*)(PL_parser->oldoldbufptr))+1 )) | 0)) & 0xC0) == 0x80)", file=file@entry=0xd66637 "toke.c", line=line@entry=525, function=function@entry=0xd5ace0 <__PRETTY_FUNCTION__.S_no_op> "void S_no_op(const char *const, char *)") at assert.c:92 #3 0x00007ffff6ceb312 in __GI___assert_fail ( assertion=0xd5ae80 <.str1033> "((((U8)((*(((const U8*)(PL_parser->oldoldbufptr))+1 )) | 0)) & 0xC0) == 0x80)", file=0xd66637 "toke.c", line=525, function=0xd5ace0 <__PRETTY_FUNCTION__.S_no_op> "void S_no_op(const char *const, char *)") at assert.c:101 #4 0x0000000000693c81 in S_no_op (what=<optimized out>, s=<optimized out>) at toke.c:525 #5 0x00000000006224f0 in Perl_yylex () at toke.c:6958 #6 0x00000000006ad346 in Perl_yyparse (gramtype=<optimized out>) at perly.c:334 #7 0x000000000059c392 in S_parse_body (env=<optimized out>, xsinit=<optimized out>) at perl.c:2373 #8 0x000000000059272d in perl_parse (my_perl=<optimized out>, xsinit=<optimized out>, argc=<optimized out>, argv=<optimized out>, env=<optimized out>) at perl.c:1689 #9 0x00000000004de6a6 in main (argc=<optimized out>, argv=<optimized out>, env=<optimized out>) at perlmain.c:121
Subject: assert556.gz
Download assert556.gz
application/x-gzip 805b

Message body not shown because it is not plain text.

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 354b
On Wed Aug 31 21:51:33 2016, brian.carpenter@gmail.com wrote: Show quoted text
> v5.25.4-25-g109ac34* > > Minimizing this testcase with afl-tmin caused this assertion to be > replaced with the one from bug #129037. > > ./perl assert556 > Malformed UTF-8 character (unexpected non-continuation byte 0xc3,
Does the patch from #126310 fix this? -- Father Chrysostomos
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 644b
Thanks for finding and reporting this problem. It turns out that it was fixed by: commit 6cdc5cd8f36f88172b0fcefdcadec75f5b6600b2 Author: Karl Williamson <khw@cpan.org> Date: Fri Dec 2 09:35:53 2016 -0700 PATCH: [perl #126310] single quote UTF-8 malformation detection This adds UTF-8 wellformedness checking in Perl_lex_next_chunk, which should get called for all program text, so this makes sure the entire program is well-formed, not just single- or double-quoted strings. I've added the script for the failure in this ticket to our test suite in commit 1fb23c72f01044b382871df38d6a63287edccf14 -- Karl Williamson
Download (untitled) / with headers
text/plain 313b
Thank you for filing this report. You have helped make Perl better. With the release today of Perl 5.26.0, this and 210 other issues have been resolved. Perl 5.26.0 may be downloaded via: https://metacpan.org/release/XSAWYERX/perl-5.26.0 If you find that the problem persists, feel free to reopen this ticket.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org