[Python-checkins] python/dist/src/Modules grpmodule.c, 2.22, 2.22.4.1 makexp_aix, 2.2, 2.2.50.1 pwdmodule.c, 1.39, 1.39.4.1 signalmodule.c, 2.76, 2.76.2.1 socketmodule.c, 1.311.2.1, 1.311.2.2 socketmodule.h, 1.12, 1.12.4.1
gvanrossum@users.sourceforge.net
gvanrossum at users.sourceforge.net
Wed Sep 14 20:15:07 CEST 2005
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24791/Modules
Modified Files:
Tag: release24-maint
grpmodule.c makexp_aix pwdmodule.c signalmodule.c
socketmodule.c socketmodule.h
Log Message:
- Changes donated by Elemental Security to make it work on AIX 5.3
with IBM's 64-bit compiler (SF patch #1284289). This also closes SF
bug #105470: test_pwd fails on 64bit system (Opteron).
Index: grpmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/grpmodule.c,v
retrieving revision 2.22
retrieving revision 2.22.4.1
diff -u -d -r2.22 -r2.22.4.1
--- grpmodule.c 20 Jan 2004 21:06:00 -0000 2.22
+++ grpmodule.c 14 Sep 2005 18:15:03 -0000 2.22.4.1
@@ -85,9 +85,9 @@
static PyObject *
grp_getgrgid(PyObject *self, PyObject *args)
{
- int gid;
+ unsigned int gid;
struct group *p;
- if (!PyArg_ParseTuple(args, "i:getgrgid", &gid))
+ if (!PyArg_ParseTuple(args, "I:getgrgid", &gid))
return NULL;
if ((p = getgrgid(gid)) == NULL) {
PyErr_Format(PyExc_KeyError, "getgrgid(): gid not found: %d", gid);
Index: makexp_aix
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/makexp_aix,v
retrieving revision 2.2
retrieving revision 2.2.50.1
diff -u -d -r2.2 -r2.2.50.1
--- makexp_aix 9 Apr 1998 21:46:02 -0000 2.2
+++ makexp_aix 14 Sep 2005 18:15:03 -0000 2.2.50.1
@@ -70,6 +70,12 @@
# left with just the symbol name.
# 7. Eliminate all entries containing two colons, like Class::method
#
-/usr/ccs/bin/nm -Bex $inputFiles \
+
+# Use -X32_64 if it appears to be implemented in this version of 'nm'.
+NM=/usr/ccs/bin/nm
+xopt=-X32_64
+$NM -e $xopt $1 >/dev/null 2>&1 || xopt=""
+
+$NM -Bex $xopt $inputFiles \
| sed -e '/ [^BDT] /d' -e '/\./d' -e 's/.* [BDT] //' -e '/::/d' \
| sort | uniq >> $expFileName
Index: pwdmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/pwdmodule.c,v
retrieving revision 1.39
retrieving revision 1.39.4.1
diff -u -d -r1.39 -r1.39.4.1
--- pwdmodule.c 20 Jan 2004 21:07:23 -0000 1.39
+++ pwdmodule.c 14 Sep 2005 18:15:03 -0000 1.39.4.1
@@ -102,9 +102,9 @@
static PyObject *
pwd_getpwuid(PyObject *self, PyObject *args)
{
- int uid;
+ unsigned int uid;
struct passwd *p;
- if (!PyArg_ParseTuple(args, "i:getpwuid", &uid))
+ if (!PyArg_ParseTuple(args, "I:getpwuid", &uid))
return NULL;
if ((p = getpwuid(uid)) == NULL) {
PyErr_Format(PyExc_KeyError,
Index: signalmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/signalmodule.c,v
retrieving revision 2.76
retrieving revision 2.76.2.1
diff -u -d -r2.76 -r2.76.2.1
--- signalmodule.c 13 Oct 2004 14:48:50 -0000 2.76
+++ signalmodule.c 14 Sep 2005 18:15:03 -0000 2.76.2.1
@@ -669,5 +669,6 @@
PyEval_ReInitThreads();
main_thread = PyThread_get_thread_ident();
main_pid = getpid();
+ _PyImport_ReInitLock();
#endif
}
Index: socketmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v
retrieving revision 1.311.2.1
retrieving revision 1.311.2.2
diff -u -d -r1.311.2.1 -r1.311.2.2
--- socketmodule.c 26 Aug 2005 08:33:28 -0000 1.311.2.1
+++ socketmodule.c 14 Sep 2005 18:15:03 -0000 1.311.2.2
@@ -1344,7 +1344,7 @@
static PyObject *
sock_accept(PySocketSockObject *s)
{
- char addrbuf[256];
+ sock_addr_t addrbuf;
SOCKET_T newfd;
socklen_t addrlen;
PyObject *sock = NULL;
@@ -1354,7 +1354,7 @@
if (!getsockaddrlen(s, &addrlen))
return NULL;
- memset(addrbuf, 0, addrlen);
+ memset(&addrbuf, 0, addrlen);
#ifdef MS_WINDOWS
newfd = INVALID_SOCKET;
@@ -1365,7 +1365,7 @@
Py_BEGIN_ALLOW_THREADS
timeout = internal_select(s, 0);
if (!timeout)
- newfd = accept(s->sock_fd, (struct sockaddr *) addrbuf,
+ newfd = accept(s->sock_fd, (struct sockaddr *) &addrbuf,
&addrlen);
Py_END_ALLOW_THREADS
@@ -1392,7 +1392,7 @@
SOCKETCLOSE(newfd);
goto finally;
}
- addr = makesockaddr(s->sock_fd, (struct sockaddr *)addrbuf,
+ addr = makesockaddr(s->sock_fd, (struct sockaddr *) &addrbuf,
addrlen, s->sock_proto);
if (addr == NULL)
goto finally;
@@ -1865,19 +1865,19 @@
static PyObject *
sock_getsockname(PySocketSockObject *s)
{
- char addrbuf[256];
+ sock_addr_t addrbuf;
int res;
socklen_t addrlen;
if (!getsockaddrlen(s, &addrlen))
return NULL;
- memset(addrbuf, 0, addrlen);
+ memset(&addrbuf, 0, addrlen);
Py_BEGIN_ALLOW_THREADS
- res = getsockname(s->sock_fd, (struct sockaddr *) addrbuf, &addrlen);
+ res = getsockname(s->sock_fd, (struct sockaddr *) &addrbuf, &addrlen);
Py_END_ALLOW_THREADS
if (res < 0)
return s->errorhandler();
- return makesockaddr(s->sock_fd, (struct sockaddr *) addrbuf, addrlen,
+ return makesockaddr(s->sock_fd, (struct sockaddr *) &addrbuf, addrlen,
s->sock_proto);
}
@@ -1894,19 +1894,19 @@
static PyObject *
sock_getpeername(PySocketSockObject *s)
{
- char addrbuf[256];
+ sock_addr_t addrbuf;
int res;
socklen_t addrlen;
if (!getsockaddrlen(s, &addrlen))
return NULL;
- memset(addrbuf, 0, addrlen);
+ memset(&addrbuf, 0, addrlen);
Py_BEGIN_ALLOW_THREADS
- res = getpeername(s->sock_fd, (struct sockaddr *) addrbuf, &addrlen);
+ res = getpeername(s->sock_fd, (struct sockaddr *) &addrbuf, &addrlen);
Py_END_ALLOW_THREADS
if (res < 0)
return s->errorhandler();
- return makesockaddr(s->sock_fd, (struct sockaddr *) addrbuf, addrlen,
+ return makesockaddr(s->sock_fd, (struct sockaddr *) &addrbuf, addrlen,
s->sock_proto);
}
@@ -2115,7 +2115,7 @@
static PyObject *
sock_recvfrom(PySocketSockObject *s, PyObject *args)
{
- char addrbuf[256];
+ sock_addr_t addrbuf;
PyObject *buf = NULL;
PyObject *addr = NULL;
PyObject *ret = NULL;
@@ -2132,18 +2132,18 @@
return NULL;
Py_BEGIN_ALLOW_THREADS
- memset(addrbuf, 0, addrlen);
+ memset(&addrbuf, 0, addrlen);
timeout = internal_select(s, 0);
if (!timeout)
n = recvfrom(s->sock_fd, PyString_AS_STRING(buf), len, flags,
#ifndef MS_WINDOWS
#if defined(PYOS_OS2) && !defined(PYCC_GCC)
- (struct sockaddr *)addrbuf, &addrlen
+ (struct sockaddr *) &addrbuf, &addrlen
#else
- (void *)addrbuf, &addrlen
+ (void *) &addrbuf, &addrlen
#endif
#else
- (struct sockaddr *)addrbuf, &addrlen
+ (struct sockaddr *) &addrbuf, &addrlen
#endif
);
Py_END_ALLOW_THREADS
@@ -2161,7 +2161,7 @@
if (n != len && _PyString_Resize(&buf, n) < 0)
return NULL;
- if (!(addr = makesockaddr(s->sock_fd, (struct sockaddr *)addrbuf,
+ if (!(addr = makesockaddr(s->sock_fd, (struct sockaddr *) &addrbuf,
addrlen, s->sock_proto)))
goto finally;
@@ -2589,11 +2589,7 @@
socket_gethostbyname(PyObject *self, PyObject *args)
{
char *name;
-#ifdef ENABLE_IPV6
- struct sockaddr_storage addrbuf;
-#else
- struct sockaddr_in addrbuf;
-#endif
+ sock_addr_t addrbuf;
if (!PyArg_ParseTuple(args, "s:gethostbyname", &name))
return NULL;
Index: socketmodule.h
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.h,v
retrieving revision 1.12
retrieving revision 1.12.4.1
diff -u -d -r1.12 -r1.12.4.1
--- socketmodule.h 23 Mar 2004 23:16:54 -0000 1.12
+++ socketmodule.h 14 Sep 2005 18:15:03 -0000 1.12.4.1
@@ -72,6 +72,26 @@
# define SIZEOF_SOCKET_T SIZEOF_INT
#endif
+/* Socket address */
+typedef union sock_addr {
+ struct sockaddr_in in;
+#ifdef AF_UNIX
+ struct sockaddr_un un;
+#endif
+#ifdef ENABLE_IPV6
+ struct sockaddr_in6 in6;
+ struct sockaddr_storage storage;
+#endif
+#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
+ struct sockaddr_l2 bt_l2;
+ struct sockaddr_rc bt_rc;
+ struct sockaddr_sco bt_sco;
+#endif
+#ifdef HAVE_NETPACKET_PACKET_H
+ struct sockaddr_ll ll;
+#endif
+} sock_addr_t;
+
/* The object holding a socket. It holds some extra information,
like the address family, which is used to decode socket address
arguments properly. */
@@ -82,24 +102,7 @@
int sock_family; /* Address family, e.g., AF_INET */
int sock_type; /* Socket type, e.g., SOCK_STREAM */
int sock_proto; /* Protocol type, usually 0 */
- union sock_addr {
- struct sockaddr_in in;
-#ifdef AF_UNIX
- struct sockaddr_un un;
-#endif
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 in6;
- struct sockaddr_storage storage;
-#endif
-#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
- struct sockaddr_l2 bt_l2;
- struct sockaddr_rc bt_rc;
- struct sockaddr_sco bt_sco;
-#endif
-#ifdef HAVE_NETPACKET_PACKET_H
- struct sockaddr_ll ll;
-#endif
- } sock_addr;
+ sock_addr_t sock_addr; /* Socket address */
PyObject *(*errorhandler)(void); /* Error handler; checks
errno, returns NULL and
sets a Python exception */
More information about the Python-checkins
mailing list