[Python-checkins] python/dist/src/Modules socketmodule.c,1.216,1.217

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
2002年6月06日 13:08:29 -0700


Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv1284
Modified Files:
	socketmodule.c 
Log Message:
The tp_new implementation should initialize the errorhandler field,
otherwise this code could segfault:
 from socket import socket
 s = socket.__new__(socket)
 s.recv(100)
Index: socketmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v
retrieving revision 1.216
retrieving revision 1.217
diff -C2 -d -r1.216 -r1.217
*** socketmodule.c	27 Apr 2002 18:44:31 -0000	1.216
--- socketmodule.c	6 Jun 2002 20:08:25 -0000	1.217
***************
*** 1691,1696 ****
 
 	new = type->tp_alloc(type, 0);
! 	if (new != NULL)
 		((PySocketSockObject *)new)->sock_fd = -1;
 	return new;
 }
--- 1691,1698 ----
 
 	new = type->tp_alloc(type, 0);
! 	if (new != NULL) {
 		((PySocketSockObject *)new)->sock_fd = -1;
+ 		((PySocketSockObject *)new)->errorhandler = &PySocket_Err;
+ 	}
 	return new;
 }

AltStyle によって変換されたページ (->オリジナル) /