Skip Menu |
Report information
Id: 132548
Status: pending release
Priority: 0/
Queue: perl5

Owner: khw <khw [at] cpan.org>
Requestors: pipcet [at] gmail.com
Cc:
AdminCc:

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



Date: Fri, 8 Dec 2017 11:51:18 +0000
To: perlbug [...] perl.org
From: Pip Cet <pipcet [...] gmail.com>
Subject: Possible memory leak in S_regclass
Download (untitled) / with headers
text/plain 4.2k
This is a bug report for perl from pipcet@gmail.com, generated with the help of perlbug 1.41 running under perl 5.27.7. ----------------------------------------------------------------- [Please describe your issue here] I believe the variable only_non_utf8_list in regcomp.c should be mortalized or destroyed after use, but currently isn't. I don't know the regexp code, so I'm not sure whether I'm missing something, but my test code reports that this variable is leaked. diff --git a/regcomp.c b/regcomp.c index 29af44c7a0..3ba091af8f 100644 --- a/regcomp.c +++ b/regcomp.c @@ -17721,6 +17721,8 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, if (_invlist_len(only_non_utf8_list) != 0) { ANYOF_FLAGS(ret) |= ANYOF_SHARED_d_MATCHES_ALL_NON_UTF8_NON_ASCII_non_d_WARN_SUPER; } + + SvREFCNT_dec_NN(only_non_utf8_list); } else { [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=core severity=low --- Site configuration information for perl 5.27.7: Configured by pip at Mon Dec 4 13:27:33 UTC 2017. Summary of my perl5 (revision 5 version 27 subversion 7) configuration: Platform: osname=linux osvers=4.13.0-1-amd64 archname=x86_64-linux uname='linux amygdala 4.13.0-1-amd64 #1 smp debian 4.13.10-1 (2017-10-30) x86_64 gnulinux ' config_args='' hint=recommended useposix=true d_sigaction=define useithreads=undef usemultiplicity=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='g++' ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/pip/git/emacs-c++/js/dist/include -pthread -g3 -ggdb' optimize='-O2' cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -pthread' ccversion='' gccversion='8.0.0 20171124 (experimental)' 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='ld' ldflags =' -fstack-protector-strong -g3 -ggdb -L/usr/local/lib' libpth=/usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0 /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0/x86_64-pc-linux-gnu /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/../../../../include/c++/8.0.0/backward /usr/local/lib /usr/local/lib/gcc/x86_64-pc-linux-gnu/8.0.0/include-fixed /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 /lib64 /usr/lib64 /usr/local/lib64 libs=-lpthread -pthread -lnsl -ldl -lm -lcrypt -lutil -lc -lmozjs-58a1 -Wl,--whole-archive mozglue.a -Wl,--no-whole-archive perllibs=-lpthread -pthread -lnsl -ldl -lm -lcrypt -lutil -lc -L /home/pip/git/emacs-c++/js/dist/bin -lmozjs-58a1 -Wl,--whole-archive /home/pip/git/emacs-c++/js/mozglue/build/libmozglue.a -Wl,--no-whole-archive libc=libc-2.25.so so=so useshrplib=false libperl=libperl.a gnulibc_version='2.25' Dynamic Linking: dlsrc=dl_none.xs dlext=none d_dlsymun=undef ccdlflags='' cccdlflags='' lddlflags='' --- @INC for perl 5.27.7: lib /usr/local/lib/perl5/site_perl/5.27.7/x86_64-linux /usr/local/lib/perl5/site_perl/5.27.7 /usr/local/lib/perl5/5.27.7/x86_64-linux /usr/local/lib/perl5/5.27.7 --- Environment for perl 5.27.7: HOME=/home/pip LANG=en_US.UTF-8 LANGUAGE (unset) LD_LIBRARY_PATH=/home/pip/git/emacs-c++/js/dist/bin:/home/pip/.cargo/bin:/home/pip/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/sbin:/usr/sbin LOGDIR (unset) PATH=/home/pip/.cargo/bin:/home/pip/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/sbin:/usr/sbin PERL_BADLANG (unset) SHELL=/bin/bash
Download perl-bug-008.diff
text/plain 550b

Message body is not shown because sender requested not to inline it.

RT-Send-CC: perl5-porters [...] perl.org
Thanks for reporting this. Fixed by 4ee748a5cc45fab2bd55de5258176a0cdf99bc96 -- Karl Williamson


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