Staging
v0.8.1
v0.8.1
https://github.com/python/cpython
Revision bfa4fe4f39dd8b5ce1a0b649cedd36857859081a authored by Nir Soffer on 10 July 2017, 21:06:57 UTC, committed by Berker Peksag on 10 July 2017, 21:06:57 UTC
If history-length is set in .inputrc, and the history file is double the history size (or more), history_get(N) returns NULL, and python segfaults. Fix that by checking for NULL return value. It seems that the root cause is incorrect handling of bigger history in readline, but Python should not segfault even if readline returns unexpected value. This issue affects only GNU readline. When using libedit emulation system history size option does not work. This is a backport of the actual fix from master without the test, since the test depends on new run_pty() helper which is not available in 2.7.
1 parent 5d1554a
Tip revision: bfa4fe4f39dd8b5ce1a0b649cedd36857859081a authored by Nir Soffer on 10 July 2017, 21:06:57 UTC
[2.7] bpo-29854: Fix segfault in call_readline() (GH-728)
[2.7] bpo-29854: Fix segfault in call_readline() (GH-728)
Tip revision: bfa4fe4
File | Mode | Size |
---|---|---|
bsddb | ||
compiler | ||
ctypes | ||
curses | ||
distutils | ||
encodings | ||
ensurepip | ||
hotshot | ||
idlelib | ||
importlib | ||
json | ||
lib-tk | ||
lib2to3 | ||
logging | ||
msilib | ||
multiprocessing | ||
plat-aix3 | ||
plat-aix4 | ||
plat-atheos | ||
plat-beos5 | ||
plat-darwin | ||
plat-freebsd4 | ||
plat-freebsd5 | ||
plat-freebsd6 | ||
plat-freebsd7 | ||
plat-freebsd8 | ||
plat-generic | ||
plat-irix5 | ||
plat-irix6 | ||
plat-linux2 | ||
plat-mac | ||
plat-netbsd1 | ||
plat-next3 | ||
plat-os2emx | ||
plat-riscos | ||
plat-sunos5 | ||
plat-unixware7 | ||
pydoc_data | ||
site-packages | ||
sqlite3 | ||
test | ||
unittest | ||
wsgiref | ||
xml | ||
BaseHTTPServer.py | -rw-r--r-- | 22.2 KB |
Bastion.py | -rw-r--r-- | 5.6 KB |
CGIHTTPServer.py | -rw-r--r-- | 12.8 KB |
ConfigParser.py | -rw-r--r-- | 27.1 KB |
Cookie.py | -rw-r--r-- | 25.9 KB |
DocXMLRPCServer.py | -rw-r--r-- | 10.3 KB |
HTMLParser.py | -rw-r--r-- | 16.8 KB |
MimeWriter.py | -rw-r--r-- | 6.3 KB |
Queue.py | -rw-r--r-- | 8.4 KB |
SimpleHTTPServer.py | -rw-r--r-- | 7.8 KB |
SimpleXMLRPCServer.py | -rw-r--r-- | 25.2 KB |
SocketServer.py | -rw-r--r-- | 23.2 KB |
StringIO.py | -rw-r--r-- | 10.4 KB |
UserDict.py | -rw-r--r-- | 6.9 KB |
UserList.py | -rw-r--r-- | 3.6 KB |
UserString.py | -rwxr-xr-x | 9.5 KB |
_LWPCookieJar.py | -rw-r--r-- | 6.4 KB |
_MozillaCookieJar.py | -rw-r--r-- | 5.7 KB |
__future__.py | -rw-r--r-- | 4.3 KB |
__phello__.foo.py | -rw-r--r-- | 64 bytes |
_abcoll.py | -rw-r--r-- | 18.2 KB |
_osx_support.py | -rw-r--r-- | 18.7 KB |
_pyio.py | -rw-r--r-- | 68.0 KB |
_strptime.py | -rw-r--r-- | 20.2 KB |
_threading_local.py | -rw-r--r-- | 7.3 KB |
_weakrefset.py | -rw-r--r-- | 5.8 KB |
abc.py | -rw-r--r-- | 7.0 KB |
aifc.py | -rw-r--r-- | 33.7 KB |
antigravity.py | -rw-r--r-- | 60 bytes |
anydbm.py | -rw-r--r-- | 2.6 KB |
argparse.py | -rw-r--r-- | 87.0 KB |
ast.py | -rw-r--r-- | 11.5 KB |
asynchat.py | -rw-r--r-- | 11.3 KB |
asyncore.py | -rw-r--r-- | 20.4 KB |
atexit.py | -rw-r--r-- | 1.7 KB |
audiodev.py | -rw-r--r-- | 7.4 KB |
base64.py | -rwxr-xr-x | 11.5 KB |
bdb.py | -rw-r--r-- | 21.2 KB |
binhex.py | -rw-r--r-- | 14.4 KB |
bisect.py | -rw-r--r-- | 2.5 KB |
cProfile.py | -rwxr-xr-x | 6.4 KB |
calendar.py | -rw-r--r-- | 22.8 KB |
cgi.py | -rwxr-xr-x | 34.0 KB |
cgitb.py | -rw-r--r-- | 11.9 KB |
chunk.py | -rw-r--r-- | 5.3 KB |
cmd.py | -rw-r--r-- | 14.7 KB |
code.py | -rw-r--r-- | 10.0 KB |
codecs.py | -rw-r--r-- | 35.3 KB |
codeop.py | -rw-r--r-- | 5.9 KB |
collections.py | -rw-r--r-- | 27.1 KB |
colorsys.py | -rw-r--r-- | 3.6 KB |
commands.py | -rw-r--r-- | 2.5 KB |
compileall.py | -rw-r--r-- | 7.6 KB |
contextlib.py | -rw-r--r-- | 4.3 KB |
cookielib.py | -rw-r--r-- | 63.5 KB |
copy.py | -rw-r--r-- | 11.3 KB |
copy_reg.py | -rw-r--r-- | 6.6 KB |
csv.py | -rw-r--r-- | 16.3 KB |
dbhash.py | -rw-r--r-- | 498 bytes |
decimal.py | -rw-r--r-- | 216.7 KB |
difflib.py | -rw-r--r-- | 80.4 KB |
dircache.py | -rw-r--r-- | 1.1 KB |
dis.py | -rw-r--r-- | 6.3 KB |
doctest.py | -rw-r--r-- | 102.7 KB |
dumbdbm.py | -rw-r--r-- | 8.9 KB |
dummy_thread.py | -rw-r--r-- | 4.3 KB |
dummy_threading.py | -rw-r--r-- | 2.7 KB |
filecmp.py | -rw-r--r-- | 9.4 KB |
fileinput.py | -rw-r--r-- | 13.4 KB |
fnmatch.py | -rw-r--r-- | 3.2 KB |
formatter.py | -rw-r--r-- | 14.6 KB |
fpformat.py | -rw-r--r-- | 4.6 KB |
fractions.py | -rw-r--r-- | 21.9 KB |
ftplib.py | -rw-r--r-- | 37.2 KB |
functools.py | -rw-r--r-- | 4.4 KB |
genericpath.py | -rw-r--r-- | 3.1 KB |
getopt.py | -rw-r--r-- | 7.1 KB |
getpass.py | -rw-r--r-- | 5.4 KB |
gettext.py | -rw-r--r-- | 22.1 KB |
glob.py | -rw-r--r-- | 3.0 KB |
gzip.py | -rw-r--r-- | 18.6 KB |
hashlib.py | -rw-r--r-- | 7.7 KB |
heapq.py | -rw-r--r-- | 17.9 KB |
hmac.py | -rw-r--r-- | 4.5 KB |
htmlentitydefs.py | -rw-r--r-- | 17.6 KB |
htmllib.py | -rw-r--r-- | 12.6 KB |
httplib.py | -rw-r--r-- | 49.4 KB |
ihooks.py | -rw-r--r-- | 18.5 KB |
imaplib.py | -rw-r--r-- | 47.4 KB |
imghdr.py | -rw-r--r-- | 3.5 KB |
imputil.py | -rw-r--r-- | 25.2 KB |
inspect.py | -rw-r--r-- | 41.8 KB |
io.py | -rw-r--r-- | 3.2 KB |
keyword.py | -rwxr-xr-x | 1.9 KB |
linecache.py | -rw-r--r-- | 3.9 KB |
locale.py | -rw-r--r-- | 97.6 KB |
macpath.py | -rw-r--r-- | 6.1 KB |
macurl2path.py | -rw-r--r-- | 2.7 KB |
mailbox.py | -rw-r--r-- | 79.3 KB |
mailcap.py | -rw-r--r-- | 7.3 KB |
markupbase.py | -rw-r--r-- | 14.3 KB |
md5.py | -rw-r--r-- | 358 bytes |
mhlib.py | -rw-r--r-- | 32.7 KB |
mimetools.py | -rw-r--r-- | 7.0 KB |
mimetypes.py | -rw-r--r-- | 20.5 KB |
mimify.py | -rwxr-xr-x | 14.7 KB |
modulefinder.py | -rw-r--r-- | 23.9 KB |
multifile.py | -rw-r--r-- | 4.7 KB |
mutex.py | -rw-r--r-- | 1.8 KB |
netrc.py | -rw-r--r-- | 5.7 KB |
new.py | -rw-r--r-- | 610 bytes |
nntplib.py | -rw-r--r-- | 21.0 KB |
ntpath.py | -rw-r--r-- | 19.0 KB |
nturl2path.py | -rw-r--r-- | 2.4 KB |
numbers.py | -rw-r--r-- | 10.1 KB |
opcode.py | -rw-r--r-- | 5.3 KB |
optparse.py | -rw-r--r-- | 59.8 KB |
os.py | -rw-r--r-- | 25.3 KB |
os2emxpath.py | -rw-r--r-- | 4.5 KB |
pdb.doc | -rw-r--r-- | 7.7 KB |
pdb.py | -rwxr-xr-x | 45.0 KB |
pickle.py | -rw-r--r-- | 44.4 KB |
pickletools.py | -rw-r--r-- | 72.8 KB |
pipes.py | -rw-r--r-- | 9.4 KB |
pkgutil.py | -rw-r--r-- | 19.9 KB |
platform.py | -rwxr-xr-x | 50.4 KB |
plistlib.py | -rw-r--r-- | 14.8 KB |
popen2.py | -rw-r--r-- | 8.2 KB |
poplib.py | -rw-r--r-- | 12.5 KB |
posixfile.py | -rw-r--r-- | 7.8 KB |
posixpath.py | -rw-r--r-- | 13.6 KB |
pprint.py | -rw-r--r-- | 11.5 KB |
profile.py | -rwxr-xr-x | 22.2 KB |
pstats.py | -rw-r--r-- | 26.1 KB |
pty.py | -rw-r--r-- | 4.9 KB |
py_compile.py | -rw-r--r-- | 5.8 KB |
pyclbr.py | -rw-r--r-- | 13.1 KB |
pydoc.py | -rwxr-xr-x | 93.4 KB |
quopri.py | -rwxr-xr-x | 6.8 KB |
random.py | -rw-r--r-- | 31.7 KB |
re.py | -rw-r--r-- | 13.1 KB |
repr.py | -rw-r--r-- | 4.2 KB |
rexec.py | -rw-r--r-- | 19.7 KB |
rfc822.py | -rw-r--r-- | 32.8 KB |
rlcompleter.py | -rw-r--r-- | 5.9 KB |
robotparser.py | -rw-r--r-- | 7.4 KB |
runpy.py | -rw-r--r-- | 10.8 KB |
sched.py | -rw-r--r-- | 5.0 KB |
sets.py | -rw-r--r-- | 18.6 KB |
sgmllib.py | -rw-r--r-- | 17.5 KB |
sha.py | -rw-r--r-- | 393 bytes |
shelve.py | -rw-r--r-- | 8.0 KB |
shlex.py | -rw-r--r-- | 10.9 KB |
shutil.py | -rw-r--r-- | 19.0 KB |
site.py | -rw-r--r-- | 18.7 KB |
smtpd.py | -rwxr-xr-x | 18.1 KB |
smtplib.py | -rwxr-xr-x | 31.4 KB |
sndhdr.py | -rw-r--r-- | 5.8 KB |
socket.py | -rw-r--r-- | 20.1 KB |
sre.py | -rw-r--r-- | 384 bytes |
sre_compile.py | -rw-r--r-- | 19.4 KB |
sre_constants.py | -rw-r--r-- | 7.0 KB |
sre_parse.py | -rw-r--r-- | 30.0 KB |
ssl.py | -rw-r--r-- | 36.9 KB |
stat.py | -rw-r--r-- | 1.8 KB |
statvfs.py | -rw-r--r-- | 898 bytes |
string.py | -rw-r--r-- | 21.0 KB |
stringold.py | -rw-r--r-- | 12.2 KB |
stringprep.py | -rw-r--r-- | 13.2 KB |
struct.py | -rw-r--r-- | 82 bytes |
subprocess.py | -rw-r--r-- | 48.5 KB |
sunau.py | -rw-r--r-- | 16.8 KB |
sunaudio.py | -rw-r--r-- | 1.4 KB |
symbol.py | -rwxr-xr-x | 2.0 KB |
symtable.py | -rw-r--r-- | 7.3 KB |
sysconfig.py | -rw-r--r-- | 22.3 KB |
tabnanny.py | -rwxr-xr-x | 11.1 KB |
tarfile.py | -rw-r--r-- | 88.4 KB |
telnetlib.py | -rw-r--r-- | 26.4 KB |
tempfile.py | -rw-r--r-- | 19.1 KB |
textwrap.py | -rw-r--r-- | 16.8 KB |
this.py | -rw-r--r-- | 1002 bytes |
threading.py | -rw-r--r-- | 46.0 KB |
timeit.py | -rwxr-xr-x | 12.5 KB |
toaiff.py | -rw-r--r-- | 3.1 KB |
token.py | -rw-r--r-- | 2.9 KB |
tokenize.py | -rw-r--r-- | 17.1 KB |
trace.py | -rwxr-xr-x | 29.2 KB |
traceback.py | -rw-r--r-- | 11.0 KB |
tty.py | -rw-r--r-- | 879 bytes |
types.py | -rw-r--r-- | 2.0 KB |
urllib.py | -rw-r--r-- | 58.6 KB |
urllib2.py | -rw-r--r-- | 51.3 KB |
urlparse.py | -rw-r--r-- | 14.8 KB |
user.py | -rw-r--r-- | 1.6 KB |
uu.py | -rwxr-xr-x | 6.4 KB |
uuid.py | -rw-r--r-- | 22.1 KB |
warnings.py | -rw-r--r-- | 14.5 KB |
wave.py | -rw-r--r-- | 18.1 KB |
weakref.py | -rw-r--r-- | 14.5 KB |
webbrowser.py | -rwxr-xr-x | 22.2 KB |
whichdb.py | -rw-r--r-- | 3.3 KB |
wsgiref.egg-info | -rw-r--r-- | 187 bytes |
xdrlib.py | -rw-r--r-- | 5.9 KB |
xmllib.py | -rw-r--r-- | 34.0 KB |
xmlrpclib.py | -rw-r--r-- | 50.9 KB |
zipfile.py | -rw-r--r-- | 57.4 KB |
Computing file changes ...