Skip to content
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

utf8.c:1418: Perl_utf8n_to_uvchr_error: Assertion `0' failed #15852

Closed
p5pRT opened this issue Jan 30, 2017 · 19 comments
Closed

utf8.c:1418: Perl_utf8n_to_uvchr_error: Assertion `0' failed #15852

p5pRT opened this issue Jan 30, 2017 · 19 comments

Comments

@p5pRT
Copy link

p5pRT commented Jan 30, 2017

Migrated from rt.perl.org#130675 (status was 'resolved')

Searchable as RT130675$

@p5pRT
Copy link
Author

p5pRT commented Jan 17, 2017

From @dur-randir

Created by @dur-randir

While fuzzing perl v5.25.8-216-gfbceb79751 built with afl and run
under libdislocator, I found the following program

s//\3000/;
s//"\x{180};;s\221(*$@​$`\241\275";/gee;
s//"s\221\302\302\302\302\302\302\302$@​\241\275";/gee;

to cause an assertion failure. This is a regression in blead since
v5.24.0, bisect points to

94749a5 is the first bad commit
commit 94749a5
Author​: Karl Williamson <khw@​cpan.org>
Date​: Tue Dec 20 13​:41​:58 2016 -0700

  Deprecate non-grapheme string delimiter

  In order for Perl to eventually allow string delimiters to be Unicode
  grapheme clusters (which look like a single character, but may be
  multiple ones), we have to stop allowing a single char delimiter that
  isn't a grapheme by itself. These are unlikely to exist in actual code,
  as they would typically display as attached to the character in front of
  them, but we should be sure.

GDB info about the crash location​:

(gdb) bt
#0 __GI_raise (sig=sig@​entry=6) at ../sysdeps/unix/sysv/linux/raise.c​:58
#1 0x00007f6377b0440a in __GI_abort () at abort.c​:89
#2 0x00007f6377afbe47 in __assert_fail_base (fmt=<optimized out>,
assertion=assertion@​entry=0x7f63791c7010 "isUTF8_CHAR((U8 *) s, (U8 *)
send)",
  file=file@​entry=0x7f63791c2439 "toke.c", line=line@​entry=3885,
function=function@​entry=0x7f63791db1c8 <__PRETTY_FUNCTION__.15607>
"S_scan_const")
  at assert.c​:92
#3 0x00007f6377afbef2 in __GI___assert_fail (assertion=0x7f63791c7010
"isUTF8_CHAR((U8 *) s, (U8 *) send)", file=0x7f63791c2439 "toke.c",
line=3885,
  function=0x7f63791db1c8 <__PRETTY_FUNCTION__.15607>
"S_scan_const") at assert.c​:101
#4 0x00007f6378ec0bc3 in S_scan_const (
  start=0x7f6379be3890 "ÂÂÂÂÂÂÂUnknown verb pattern 'Unterminated
verb pattern in regex; marked by <-- HERE in m/(* <-- HERE / at (eval
1' in regex; marked by <-- HERE in m/(*Unknown verb pattern
'Unterminated verb pa"...) at toke.c​:3885
#5 0x00007f6378ec8ed0 in Perl_yylex () at toke.c​:4899
#6 0x00007f6378efb258 in Perl_yyparse (gramtype=258) at perly.c​:340
#7 0x00007f63790a797b in S_doeval_compile (gimme=2 '\002',
outside=0x7f6379bbf358, seq=4294967248, hh=0x0) at pp_ctl.c​:3414
#8 0x00007f63790ae991 in Perl_pp_entereval () at pp_ctl.c​:4274
#9 0x00007f6378f85bb0 in Perl_runops_debug () at dump.c​:2260
#10 0x00007f6378e8011c in S_run_body (oldscope=1) at perl.c​:2523
#11 0x00007f6378e7f6d4 in perl_run (my_perl=0x7f6379bbd010) at perl.c​:2451
#12 0x00007f6378e3ad3e in main (argc=2, argv=0x7ffe35886fe8,
env=0x7ffe35887000) at perlmain.c​:123

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl 5.25.9:

Configured by root at Sat Jan 14 02:25:05 MSK 2017.

Summary of my perl5 (revision 5 version 25 subversion 9) configuration:
  Commit id: cbe2fc5001aa59cdc73e04cc35e097a2ecfbeec0
  Platform:
    osname=linux
    osvers=3.16.0-4-amd64
    archname=x86_64-linux
    uname='linux dorothy 3.16.0-4-amd64 #1 smp debian 3.16.36-1+deb8u2
(2016-10-19) x86_64 gnulinux '
    config_args='-des -Dusedevel -DDEBUGGING -Dcc=afl-clang-fast
-Doptimize=-O0 -g -ggdb3'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    bincompat5005=undef
  Compiler:
    cc='afl-clang-fast'
    ccflags ='-DDEBUGGING -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
    optimize='-O0 -g -ggdb3'
    cppflags='-DDEBUGGING -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='4.2.1 Compatible Clang 3.9.1 (tags/RELEASE_391/rc2)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='afl-clang-fast'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/lib
/usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu
/lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.24.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.24'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O0 -g -ggdb3 -L/usr/local/lib -fstack-protector-strong'



@INC for perl 5.25.9:
    lib
    /usr/local/lib/perl5/site_perl/5.25.9/x86_64-linux
    /usr/local/lib/perl5/site_perl/5.25.9
    /usr/local/lib/perl5/5.25.9/x86_64-linux
    /usr/local/lib/perl5/5.25.9


Environment for perl 5.25.9:
    HOME=/home/afl
    LANG=en_US.UTF-8
    LANGUAGE=en_US:en
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/afl/perlbrew/bin:/home/afl/perlbrew/perls/perl-5.22.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    PERLBREW_BASHRC_VERSION=0.78
    PERLBREW_HOME=/home/afl/.perlbrew
    PERLBREW_MANPATH=/home/afl/perlbrew/perls/perl-5.22.1/man
    PERLBREW_PATH=/home/afl/perlbrew/bin:/home/afl/perlbrew/perls/perl-5.22.1/bin
    PERLBREW_PERL=perl-5.22.1
    PERLBREW_ROOT=/home/afl/perlbrew
    PERLBREW_VERSION=0.78
    PERL_BADLANG (unset)
    SHELL=/usr/bin/zsh

@p5pRT
Copy link
Author

p5pRT commented Jan 26, 2017

From @khwilliamson

Thanks for the report. Fixed by 90b58c7
--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Jan 26, 2017

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jan 26, 2017

@khwilliamson - Status changed from 'open' to 'resolved'

@p5pRT
Copy link
Author

p5pRT commented Jan 27, 2017

From @dur-randir

On Wed, 25 Jan 2017 21​:42​:09 -0800, khw wrote​:

Thanks for the report. Fixed by 90b58c7

This can still be hit by the following 19-bytes program​:

% hexdump -C ../0045
00000000 42 45 47 49 4e 7b 24 5e 48 3d 2d 31 7d 73 00 ff |BEGIN{$^H=-1}s..|
00000010 ff 00 00 |...|
00000013

On debugging builds it gives​:

Malformed UTF-8 character​: \xff\xff (overflows) at ../0045 line 1.
Malformed UTF-8 character​: \xff\xff (too short; 2 bytes available, need 13) at ../0045 line 1.
Malformed UTF-8 character​: \xff\xff (unexpected non-continuation byte 0xff, immediately after start byte 0xff; need 13 bytes, got 1) at ../0045 line 1.
perl​: toke.c​:3975​: S_scan_const​: Assertion `(__builtin_expect(((((U8 *) send) <= ((U8 *) s)) ? (_Bool)1 : (_Bool)0),(0)) ? 0 : (((unsigned long)(((*(U8 *) s) | 0) | 0) < 128)) ? 1 : __builtin_expect((((((U8 *) send) - ((U8 *) s)) < PL_utf8skip[*(const U8*)((U8 *) s)]) ? (_Bool)1 : (_Bool)0),(0)) ? 0 : __builtin_expect((((((( (sizeof(*(U8 *) s) == 1) || !(((unsigned long)((*(U8 *) s) | 0)) & ~0xFF))) ? (void) (0) : __assert_fail ("( (sizeof(*(U8 *) s) == 1) || !(((unsigned long)((*(U8 *) s) | 0)) & ~0xFF))", "toke.c", 3975, __PRETTY_FUNCTION__)), ((U8) (*(U8 *) s))) <= 0xF7) ? (_Bool)1 : (_Bool)0),(1)) ? ( ( 0xC2 <= ((const U8*)(U8 *) s)[0] && ((const U8*)(U8 *) s)[0] <= 0xDF ) ? ( __builtin_expect(((( ((const U8*)(U8 *) s)[1] & 0xC0 ) == 0x80) ? (_Bool)1 : (_Bool)0),(1)) ? 2 : 0 ) : ( 0xE0 == ((const U8*)(U8 *) s)[0] ) ? ( __builtin_expect(((( ( ((const U8*)(U8 *) s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((const U8*)(U8 *) s)[2] & 0xC0 ) == 0x80 )) ? (_Bool)1 : (_Bool)0),(1)) ? 3 : 0 )​: ( 0xE1 <= ((const U8*)(U8 *) s)[0] && ((const U8*)(U8 *) s)[0] <= 0xEF ) ? ( __builtin_expect(((( ( ((const U8*)(U8 *) s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)(U8 *) s)[2] & 0xC0 ) == 0x80 )) ? (_Bool)1 : (_Bool)0),(1)) ? 3 : 0 )​: ( 0xF0 == ((const U8*)(U8 *) s)[0] ) ? ( __builtin_expect(((( ( 0x90 <= ((const U8*)(U8 *) s)[1] && ((const U8*)(U8 *) s)[1] <= 0xBF ) && ( ( ((const U8*)(U8 *) s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)(U8 *) s)[3] & 0xC0 ) == 0x80 )) ? (_Bool)1 : (_Bool)0),(1)) ? 4 : 0 )​: ( ( ( ( 0xF1 <= ((const U8*)(U8 *) s)[0] && ((const U8*)(U8 *) s)[0] <= 0xF7 ) && __builtin_expect(((( ((const U8*)(U8 *) s)[1] & 0xC0 ) == 0x80) ? (_Bool)1 : (_Bool)0),(1)) ) && __builtin_expect(((( ((const U8*)(U8 *) s)[2] & 0xC0 ) == 0x80) ? (_Bool)1 : (_Bool)0),(1)) ) && __builtin_expect(((( ((const U8*)(U8 *) s)[3] & 0xC0 ) == 0x80) ? (_Bool)1 : (_Bool)0),(1)) ) ? 4 : 0 ) : Perl__is_utf8_char_helper((U8 *) s, (U8 *) send, 0))' failed.
zsh​: abort ./perl ../0045

On non-debugging builds it produces panic()​:

Malformed UTF-8 character​: \xff\xff (overflows) at ../0045 line 1.
Malformed UTF-8 character​: \xff\xff (too short; 2 bytes available, need 13) at ../0045 line 1.
Malformed UTF-8 character​: \xff\xff (unexpected non-continuation byte 0xff, immediately after start byte 0xff; need 13 bytes, got 1) at ../0045 line 1.
panic​: constant overflowed allocated space, 14 >= 10 at ../0045 line 1.

@p5pRT
Copy link
Author

p5pRT commented Jan 27, 2017

From @dur-randir

0045

@p5pRT
Copy link
Author

p5pRT commented Jan 30, 2017

From @hvds

I can confirm the new case, with​:
  perl -we 'print "BEGIN{\$^H=-0x00800000} s\x00\xff\xff\x00\x00"' | ./miniperl
.. and gdb shows it doesn't hit the pathway fixed in Karl's patch.

I've reopened the ticket; Sergey, it'd probably be more helpful to send a fresh perlbug report when you find new cases, it's easier to merge tickets that turn out to have the same cause than to separate ones that turn out not to.

Hugo

@p5pRT
Copy link
Author

p5pRT commented Jan 30, 2017

@hvds - Status changed from 'resolved' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jan 30, 2017

From @dur-randir

On Mon, 30 Jan 2017 09​:57​:32 -0800, hv wrote​:

I've reopened the ticket; Sergey, it'd probably be more helpful to
send a fresh perlbug report when you find new cases, it's easier to
merge tickets that turn out to have the same cause than to separate
ones that turn out not to.

OK, sure.

@p5pRT
Copy link
Author

p5pRT commented Jan 30, 2017

From @dur-randir

Created by @dur-randir

While fuzzing perl v5.25.9-35-g32207c637b built with afl and run
under libdislocator, I found the following 21-bytes program

% hexdump -C ../afl-asan/0051_1
00000000 42 45 47 49 4e 7b 24 5e 48 20 3d 20 2d 31 7d 79 |BEGIN{$^H = -1}y|
00000010 27 30 c1 27 27 |'0.''|
00000015

to cause an assertion failure. This is a regression in blead, bisect points to​:

d1f8d42 is the first bad commit
commit d1f8d42
Author​: Karl Williamson <khw@​cpan.org>
Date​: Mon Dec 19 13​:25​:06 2016 -0700

  utf8.c​: Forbid zero-length malformation under DEBUGGING

GDB info about the crash location​:

(gdb) bt
#0 __GI_raise (sig=sig@​entry=6) at ../sysdeps/unix/sysv/linux/raise.c​:58
#1 0x00007f117cd2f40a in __GI_abort () at abort.c​:89
#2 0x00007f117cd26e47 in __assert_fail_base (fmt=<optimized out>,
assertion=assertion@​entry=0x7f117ebb23ee "0",
file=file@​entry=0x7f117ebdeefc "utf8.c",
  line=line@​entry=1418, function=function@​entry=0x7f117ebe3610
<__PRETTY_FUNCTION__.15300> "Perl_utf8n_to_uvchr_error") at
assert.c​:92
#3 0x00007f117cd26ef2 in __GI___assert_fail
(assertion=assertion@​entry=0x7f117ebb23ee "0",
file=file@​entry=0x7f117ebdeefc "utf8.c", line=line@​entry=1418,
  function=function@​entry=0x7f117ebe3610 <__PRETTY_FUNCTION__.15300>
"Perl_utf8n_to_uvchr_error") at assert.c​:101
#4 0x00007f117e9b85f3 in Perl_utf8n_to_uvchr_error (s=<optimized
out>, s@​entry=0x7f117f6beca2 "", curlen=curlen@​entry=0,
  retlen=retlen@​entry=0x7ffd49da7d48, flags=flags@​entry=0,
errors=0x7ffd49da7c3c, errors@​entry=0x0) at utf8.c​:1418
#5 0x00007f117e12c02e in S_pmtrans (repl=0x7f117f6beb18,
expr=<optimized out>, o=<optimized out>) at op.c​:5421
#6 Perl_pmruntime (o=<optimized out>, expr=<optimized out>,
repl=0x7f117f6beb18, flags=flags@​entry=1, floor=<optimized out>) at
op.c​:5740
#7 0x00007f117e2b754d in Perl_yyparse (gramtype=gramtype@​entry=258)
at perly.y​:1204
#8 0x00007f117e172081 in S_parse_body (env=env@​entry=0x0,
xsinit=xsinit@​entry=0x7f117e0716c0 <xs_init>) at perl.c​:2376
#9 0x00007f117e178d3b in perl_parse (my_perl=<optimized out>,
xsinit=0x7f117e0716c0 <xs_init>, argc=<optimized out>, argv=<optimized
out>, env=0x0)
  at perl.c​:1691
#10 0x00007f117e07129e in main (argc=<optimized out>, argv=<optimized
out>, env=<optimized out>) at perlmain.c​:121

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl 5.25.9:

Configured by root at Sat Jan 14 02:25:05 MSK 2017.

Summary of my perl5 (revision 5 version 25 subversion 9) configuration:
  Commit id: cbe2fc5001aa59cdc73e04cc35e097a2ecfbeec0
  Platform:
    osname=linux
    osvers=3.16.0-4-amd64
    archname=x86_64-linux
    uname='linux dorothy 3.16.0-4-amd64 #1 smp debian 3.16.36-1+deb8u2
(2016-10-19) x86_64 gnulinux '
    config_args='-des -Dusedevel -DDEBUGGING -Dcc=afl-clang-fast
-Doptimize=-O0 -g -ggdb3'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    bincompat5005=undef
  Compiler:
    cc='afl-clang-fast'
    ccflags ='-DDEBUGGING -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
    optimize='-O0 -g -ggdb3'
    cppflags='-DDEBUGGING -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='4.2.1 Compatible Clang 3.9.1 (tags/RELEASE_391/rc2)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='afl-clang-fast'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/lib
/usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu
/lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
    libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.24.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.24'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O0 -g -ggdb3 -L/usr/local/lib -fstack-protector-strong'



@INC for perl 5.25.9:
    lib
    /usr/local/lib/perl5/site_perl/5.25.9/x86_64-linux
    /usr/local/lib/perl5/site_perl/5.25.9
    /usr/local/lib/perl5/5.25.9/x86_64-linux
    /usr/local/lib/perl5/5.25.9


Environment for perl 5.25.9:
    HOME=/home/afl
    LANG=en_US.UTF-8
    LANGUAGE=en_US:en
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/afl/perlbrew/bin:/home/afl/perlbrew/perls/perl-5.22.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    PERLBREW_BASHRC_VERSION=0.78
    PERLBREW_HOME=/home/afl/.perlbrew
    PERLBREW_MANPATH=/home/afl/perlbrew/perls/perl-5.22.1/man
    PERLBREW_PATH=/home/afl/perlbrew/bin:/home/afl/perlbrew/perls/perl-5.22.1/bin
    PERLBREW_PERL=perl-5.22.1
    PERLBREW_ROOT=/home/afl/perlbrew
    PERLBREW_VERSION=0.78
    PERL_BADLANG (unset)
    SHELL=/usr/bin/zsh

@p5pRT
Copy link
Author

p5pRT commented Jan 30, 2017

From @dur-randir

0051

@p5pRT
Copy link
Author

p5pRT commented Jan 31, 2017

From @khwilliamson

I have filed #130679 for a portion of this.
But part of it is due to malformed UTF-8 not being caught. Trying to catch it at all is a new behavior. I was told the place to catch it was in lex_next_chunk() in toke.c. That turned out to not catch string evals, so I added a check in lex_start(), and we're getting tickets that indicate this is still insufficient.

This ticket is a case in point. There is malformed UTF-8 in it, but we don't know that we are parsing UTF-8 until partway through, after the BEGIN. (Playing manually isn't necessary to get this failure. A 'use utf8' instead also triggers it.) Tony Cook pointed out that replacing the semi-colon with a newline causes the malformedness to be discovered properly. Apparently next_chunk does things a line at a time. He is of the opinion that there may not be a way to efficiently handle the situation where the utf8ness changes midline.

Ideas welcome

--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Jan 31, 2017

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jan 31, 2017

From @khwilliamson

On 01/30/2017 07​:46 PM, Karl Williamson via RT wrote​:

(Playing manually ...

should have been

(Playing manually with $^H ...

@p5pRT
Copy link
Author

p5pRT commented Jan 31, 2017

From @khwilliamson

On Mon, 30 Jan 2017 12​:34​:11 -0800, randir wrote​:

On Mon, 30 Jan 2017 09​:57​:32 -0800, hv wrote​:

I've reopened the ticket; Sergey, it'd probably be more helpful to
send a fresh perlbug report when you find new cases, it's easier to
merge tickets that turn out to have the same cause than to separate
ones that turn out not to.

OK, sure.

This reopened ticket is the same cause as 130675, and I have merged them together.

We do not handle well the case where the known utf8ness of a file changes mid-line. Outside of fuzzers, that is unlikely to occur in real code.
--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Feb 14, 2017

From @khwilliamson

This is now fixed by
d2fcc8a4e4a59b980f84fc4bedae95f629235708
--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Feb 14, 2017

@khwilliamson - Status changed from 'open' to 'pending release'

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

From @khwilliamson

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.

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

@khwilliamson - Status changed from 'pending release' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant