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

regex: /.{1}??/ should be an error #14960

Closed
p5pRT opened this issue Oct 2, 2015 · 7 comments
Closed

regex: /.{1}??/ should be an error #14960

p5pRT opened this issue Oct 2, 2015 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Oct 2, 2015

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

Searchable as RT126253$

@p5pRT
Copy link
Author

p5pRT commented Oct 2, 2015

From victor@drawall.cc

Created by victor@drawall.cc

How to reproduce
----------------

perl5.23.4 -e '/.{1}??/'

Note​: /.{1}?+/ gives the same results, but no other quantifier combination.

Expected behavior
-----------------

Perl should die with the following diagnostic​:

Nested quantifiers in regex; marked by <-- HERE in m/.{1}?? <-- HERE / at -e line 1.

Actual behavior
---------------

Perl terminates normally.

Affected versions
-----------------

Current blead (0fa1f7e) is affected.
perl5.22.0 is affected
perl5.20.2 is affected
perl5.18.4 is NOT affected
perl5.16.3 is NOT affected.

Perl Info

Flags:
    category=core
    severity=low

This perlbug was built using Perl 5.23.4 - Fri Oct  2 19:59:39 CEST 2015
It is being executed now by  Perl 5.23.4 - Tue Sep 22 21:18:14 CEST 2015.

Site configuration information for perl 5.23.4:

Configured by grimy at Tue Sep 22 21:18:14 CEST 2015.

Summary of my perl5 (revision 5 version 23 subversion 4) configuration:
  Commit id: 2d9b5f101563ac9fee41e6ca496f79db6222d2e3
  Platform:
    osname=linux, osvers=4.0.7-2-arch, archname=x86_64-linux
    uname='linux localhost 4.0.7-2-arch #1 smp preempt tue jun 30
07:50:21 utc 2015 x86_64 gnulinux '
    config_args='-ds -e -Dusedevel'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fwrapv -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include'
    ccversion='', gccversion='5.1.0', 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='cc', ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib
/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/include-fixed /usr/lib
/lib/../lib /usr/lib/../lib /lib /lib64 /usr/lib64
    libs=-lpthread -lnsl -lnm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
-lgdbm_compat
    perllibs=-lpthread -lnsl -lnm -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.21.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.21'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib
-fstack-protector-strong'



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


Environment for perl 5.23.4:
    HOME=/home/grimy
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/grimy/bin:/home/grimy/.nvim/scripts:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/plan9/bin
    PERL_BADLANG (unset)
    SHELL (unset)

@p5pRT
Copy link
Author

p5pRT commented Oct 5, 2015

From @iabyn

On Fri, Oct 02, 2015 at 12​:59​:09PM -0700, Victor ADAM wrote​:

# New Ticket Created by Victor ADAM
# Please include the string​: [perl #126253]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=126253 >

This is a bug report for perl from victor@​drawall.cc,
generated with the help of perlbug 1.40 running under perl 5.23.4.

-----------------------------------------------------------------
[Please describe your issue here]

How to reproduce
----------------

perl5.23.4 -e '/.{1}??/'

Note​: /.{1}?+/ gives the same results, but no other quantifier combination.

But it warns​:

$ perl5200 -we'"a" =~ /.{1}??/'
Useless use of greediness modifier '?' in regex; marked by <-- HERE in m/.{1}? <-- HERE ?/ at -e line 1.
$

--
My Dad used to say 'always fight fire with fire', which is probably why
he got thrown out of the fire brigade.

@p5pRT
Copy link
Author

p5pRT commented Oct 5, 2015

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

@p5pRT
Copy link
Author

p5pRT commented Oct 6, 2015

From @iabyn

On Mon, Oct 05, 2015 at 09​:18​:29AM +0100, Dave Mitchell wrote​:

On Fri, Oct 02, 2015 at 12​:59​:09PM -0700, Victor ADAM wrote​:

# New Ticket Created by Victor ADAM
# Please include the string​: [perl #126253]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=126253 >

This is a bug report for perl from victor@​drawall.cc,
generated with the help of perlbug 1.40 running under perl 5.23.4.

-----------------------------------------------------------------
[Please describe your issue here]

How to reproduce
----------------

perl5.23.4 -e '/.{1}??/'

Note​: /.{1}?+/ gives the same results, but no other quantifier combination.

But it warns​:

$ perl5200 -we'"a" =~ /.{1}??/'
Useless use of greediness modifier '?' in regex; marked by <-- HERE in m/.{1}? <-- HERE ?/ at -e line 1.
$

Victor pointed out to me offlist that that should still die. Bisecting
shows that up until the following commit, /.{1}??/ croaked with

  Nested quantifiers in regex; ...

and now its silently accepted.

commit 4fa6dd1
Author​: Karl Williamson <public@​khwilliamson.com>
Date​: Fri Dec 6 15​:50​:52 2013 -0700

  PATCH​: [Perl #42957] Suggesting warning for useless greediness operator
 
  This adds the requested warning. Now we'll see if anything breaks as a
  result.

--
Modern art​:
  "That's easy, I could have done that!"
  "Ah, but you didn't!"

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2015

From @khwilliamson

Thanks for the report, fixed by commit
d54288e

--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Oct 22, 2015

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

@p5pRT p5pRT closed this as completed Jan 10, 2016
@p5pRT
Copy link
Author

p5pRT commented Jan 10, 2016

@mauke - 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