Staging
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
History
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)
Tip revision: bfa4fe4
File Mode Size
bsddb
compiler
ctypes
curses
distutils
email
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

back to top