New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Illegal division by zero leads to Assertion `(((U8)(*l) & 0xfe) == 0xc2)' failed. #14964
Comments
From @dcollinsnGreetings Porters, I have compiled bleadperl with the afl-gcc compiler using: ./Configure -Dusedevel -Dprefix='/usr/local/perl-afl' -Dcc='ccache afl-gcc' -Duselongdouble -Duse64bitall -Doptimize=-g -Uversiononly -Uman1dir -Uman3dir -DDEBUGGING -DPERL_POISON -des And then fuzzed the resulting binary using: AFL_NO_VAR_CHECK=1 afl-fuzz -i in -o out bin/perl @@ After reducing testcases using `afl-tmin` and performing additional minimization by hand, I have located the following testcase that triggers an assert fail in the perl interpreter, but which (correctly) errors out in non-debugging perl. The simplest testcase is the 30-character file: /0\G|0+|/>>s>>\x{100}>>s>>>g/0 In a not-debugging perl, the output is: In a debugging perl, the output is: **GDB** Program received signal SIGABRT, Aborted. **PERL -V** Characteristics of this binary (from libperl): |
From @iabynOn Sun, Oct 04, 2015 at 07:02:09AM -0700, Dan Collins wrote:
The division by zero was a slight red herring; the assertion failure Should be fixed by the following: commit 4cf1a86 /..\G/: use chars, not bytes -- |
The RT System itself - Status changed from 'new' to 'open' |
@iabyn - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for submitting this report. You have helped make Perl better. Perl 5.24.0 may be downloaded via https://metacpan.org/release/RJBS/perl-5.24.0 |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#126260 (status was 'resolved')
Searchable as RT126260$
The text was updated successfully, but these errors were encountered: