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
readline module Crashs on OpenBSD/amd64 #47895
Comments
$ python2.5
Python 2.5.2 (r252:60911, Jun 16 2008, 15:20:47)
[GCC 3.3.5 (propolice)] on openbsd4
Type "help", "copyright", "credits" or "license" for more information.
>>> def complete(text, state):
... print 'complete %r %d' % (text, state)
... if text == 'i' and state == 0:
... return 'import'
... else:
... return None
...
>>> import readline; readline.parse_and_bind("tab: complete")
>>> readline.set_completer(complete)
>>> i<TAB> # <TAB> is press the tab key
complete 'i' 0
complete 'i' 1
Segmentation fault (core dumped)
The problem is that Python is using a function present in libreadline
but not declared in readline/readline.h: completion_matches. Instead of
using rl_completion_matches.
Therefor the return type of completion_matches was an int which is
32bits on amd64 but the function was supposed to returns a pointer which
is 64 bits. So when the pointer had a "high" value, it was truncated.
The problem is fixed by adding libcurses to AC_CHECK_LIB when checking
for functions in libreadline since libreadline depends on curses. This
makes Python use the correct functions declared on readline.h with a
correct return type. Patch is attached. (Others versions of Python should also be affected) |
Looks like this patch should also be applied to python 2.6 & 3. I did not tested but the patch is trivial enough to be applied without |
committed to trunk (2.6) in r66179. This should be back ported to can someone with OpenBSD confirm that this has indeed fixed the problem? |
I just compiled the latest version of trunk. The problem seems to be |
may bpo-1204 is more general |
true, bpo-1204 is more general. i'll leave this in but it can be |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: