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

redundant SvUPGRADE in perl_construct? #12606

Closed
p5pRT opened this issue Nov 23, 2012 · 4 comments
Closed

redundant SvUPGRADE in perl_construct? #12606

p5pRT opened this issue Nov 23, 2012 · 4 comments

Comments

@p5pRT
Copy link

p5pRT commented Nov 23, 2012

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

Searchable as RT115880$

@p5pRT
Copy link
Author

p5pRT commented Nov 23, 2012

From @bulk88

Created by @bulk88

At
http​://perl5.git.perl.org/perl.git/blame/4d91e28241ad974dc4df24b1f21b7278e74f5310​:/perl.c#l363
I see a SvUPGRADE on something that will be passed to SvPV_nolen_const.
It was added in
http​://perl5.git.perl.org/perl.git/commit/27da23d53ccce622bc51822f59df8def79b4df95?f=perl.c
"Symbian port of Perl". I think the SvUPGRADE is redundant since SvPV
will not crash if an SV is undef with no PV or no head. I have no way to
compile a perl that has that code defed in, so I am filing this bug.

Perl Info

Flags:
    category=core
    severity=low

Site configuration information for perl 5.17.7:

Configured by Owner at Thu Nov 22 18:38:37 2012.

Summary of my perl5 (revision 5 version 17 subversion 7 patch blead 
2012-11-22.16:15:39 ac93cf5da977bd07a11ef68c5b684322bd23fd72 
v5.17.6-28-gac93cf5) configuration:
  Snapshot of: ac93cf5da977bd07a11ef68c5b684322bd23fd72
  Platform:
    osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
    uname=''
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 
-D_CONSOLE -DNO_STRICT  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT 
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T',
    optimize='-MD -Zi -DNDEBUG -O1',
    cppflags='-DWIN32'
    ccversion='13.10.6030', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', 
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf  
-libpath:"c:\perl517\lib\CORE"  -machine:x86'
    libpth="C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\lib"
    libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib 
odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
    perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib 
oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  
version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib
    libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl517.lib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug 
-opt:ref,icf  -libpath:"c:\perl517\lib\CORE"  -machine:x86'

Locally applied patches:
    


@INC for perl 5.17.7:
    C:/perl517/site/lib
    C:/perl517/lib
    .


Environment for perl 5.17.7:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=C:\perl517\bin;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\IDE;C:\Program Files\Microsoft Visual Studio .NET 
2003\VC7\BIN;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools;C:\Program Files\Microsoft Visual Studio .NET 
2003\Common7\Tools\bin\prerelease;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;
    PERL_BADLANG (unset)
    SHELL (unset)


@p5pRT
Copy link
Author

p5pRT commented Nov 13, 2017

From zefram@fysh.org

                   I think the SvUPGRADE is redundant since SvPV

will not crash if an SV is undef with no PV or no head.

That's true, but you know what *will* crash? Evaluating ERRSV
before PL_errgv has been created. Even if ERRSV did exist, there's
nothing in that code to put a meaningful error message into it.
This code has been buggy from its inception. Fixed in commit
f63f403.

-zefram

@p5pRT
Copy link
Author

p5pRT commented Nov 13, 2017

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

@p5pRT
Copy link
Author

p5pRT commented Nov 13, 2017

@cpansprout - Status changed from 'open' 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