• Tim Peters's avatar
    Bug #1521947: possible bug in mystrtol.c with recent gcc. · bc24eee3
    Tim Peters yazdı
    In general, C doesn't define anything about what happens when
    an operation on a signed integral type overflows, and PyOS_strtol()
    did several formally undefined things of that nature on signed
    longs.  Some version of gcc apparently tries to exploit that now,
    and PyOS_strtol() could fail to detect overflow then.
    
    Tried to repair all that, although it seems at least as likely to me
    that we'll get screwed by bad platform definitions for LONG_MIN
    and/or LONG_MAX now.  For that reason, I don't recommend backporting
    this.
    
    Note that I have no box on which this makes a lick of difference --
    can't really test it, except to note that it didn't break anything
    on my boxes.
    
    Silent change:  PyOS_strtol() used to return the hard-coded 0x7fffffff
    in case of overflow.  Now it returns LONG_MAX.  They're the same only on
    32-bit boxes (although C doesn't guarantee that either ...).
    bc24eee3
Adı
Son kayıt (commit)
Son güncelleme
..
Python-ast.c Loading commit data...
asdl.c Loading commit data...
ast.c Loading commit data...
atof.c Loading commit data...
bltinmodule.c Loading commit data...
ceval.c Loading commit data...
codecs.c Loading commit data...
compile.c Loading commit data...
dup2.c Loading commit data...
dynload_aix.c Loading commit data...
dynload_atheos.c Loading commit data...
dynload_beos.c Loading commit data...
dynload_dl.c Loading commit data...
dynload_hpux.c Loading commit data...
dynload_next.c Loading commit data...
dynload_os2.c Loading commit data...
dynload_shlib.c Loading commit data...
dynload_stub.c Loading commit data...
dynload_win.c Loading commit data...
errors.c Loading commit data...
fmod.c Loading commit data...
frozen.c Loading commit data...
frozenmain.c Loading commit data...
future.c Loading commit data...
getargs.c Loading commit data...
getcompiler.c Loading commit data...
getcopyright.c Loading commit data...
getcwd.c Loading commit data...
getmtime.c Loading commit data...
getopt.c Loading commit data...
getplatform.c Loading commit data...
getversion.c Loading commit data...
graminit.c Loading commit data...
hypot.c Loading commit data...
import.c Loading commit data...
importdl.c Loading commit data...
importdl.h Loading commit data...
mactoolboxglue.c Loading commit data...
marshal.c Loading commit data...
memmove.c Loading commit data...
modsupport.c Loading commit data...
mysnprintf.c Loading commit data...
mystrtoul.c Loading commit data...
pyarena.c Loading commit data...
pyfpe.c Loading commit data...
pystate.c Loading commit data...
pystrtod.c Loading commit data...
pythonrun.c Loading commit data...
sigcheck.c Loading commit data...
strdup.c Loading commit data...
strerror.c Loading commit data...
strtod.c Loading commit data...
structmember.c Loading commit data...
symtable.c Loading commit data...
sysmodule.c Loading commit data...
thread.c Loading commit data...
thread_atheos.h Loading commit data...
thread_beos.h Loading commit data...
thread_cthread.h Loading commit data...
thread_foobar.h Loading commit data...
thread_lwp.h Loading commit data...
thread_nt.h Loading commit data...
thread_os2.h Loading commit data...
thread_pth.h Loading commit data...
thread_pthread.h Loading commit data...
thread_sgi.h Loading commit data...
thread_solaris.h Loading commit data...
thread_wince.h Loading commit data...
traceback.c Loading commit data...