[Python-bugs-list] [ python-Bugs-476648 ] socket.getnameinfo crashes interpreter

noreply@sourceforge.net noreply@sourceforge.net
Thu, 01 Nov 2001 20:05:03 -0800


Bugs item #476648, was opened at 2001-10-30 20:58
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=476648&group_id=5470

Category: Python Library
Group: None
Status: Closed
Resolution: Works For Me
Priority: 5
Submitted By: Mark Rowe (icep17)
Assigned to: Martin v. Löwis (loewis)
Summary: socket.getnameinfo crashes interpreter

Initial Comment:
When making an invalid call to socket.getnameinfo() it
is possible to crash the interpreter.  From what I've
seen, this occurs under Windows ME with Python 2.2b1
and Windows 98 with Python 2.2a3.  It does not occur
under Mandrake 8.0 with Python 2.2a3.

>>> import socket
>>> socket.getnameinfo(socket.inet_aton('127.0.0.1'), 0)

This results with Python causing an error in
MSVCRT.DLL.  Under Mandrake 8.0 it causes the expected
exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
SystemError: new style getargs format but argument is
not a tuple


----------------------------------------------------------------------

>Comment By: Mark Rowe (icep17)
Date: 2001-11-01 20:05

Message:
Logged In: YES 
user_id=147838

Under Windows ME with Python 2.2b1 I still get the crash.  I
have asked my friend to check it (Windows 95c Python 2.2b1)
and he also gets the crash.  I compiled the debug build of
Python and running the above code in an interpreter session
gives:

Adding parser accelerators ...
Done.
Python 2.2b1 (#25, Oct 21 2001, 13:42:02) [MSC 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.
>>> import socket
[8983 refs]
>>> socket.getnameinfo(socket.inet_aton('127.0.0.1'), 0)
C:\Program
Files\python22\Python-2.2b1\Objects\tupleobject.c:147
negative ref co
unt -572662308
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
SystemError: new style getargs format but argument is not a
tuple
[9020 refs]
>>>

The Debug build of Python does not crash, but instead
reports a negative refrence count, which could be the cause
of the crash in the release build.  As I am not too familiar
with the internals of Python I have trouble understanding
what is happening when running the interpreter under the
debugger, but if you would like some more detail I will
happily provide it.

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2001-11-01 06:22

Message:
Logged In: YES 
user_id=21627

I cannot reproduce this in 2.2b1 (it works the same on 
Win32 as it does on Linux), but I also fail to see what 
code change may have caused to fail it in 2.2a3.

Please update to 2.2b1 and retest; if it still happens, 
check that you don't have any extra copies of 
python22.dll. If so, please add a note in this report, and 
we'll re-open it.

If you can, it would help enourmously if you could run the 
program in a debugger and report the stack trace in case 
of error, and the file and line number causing the crash.

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=476648&group_id=5470