*** Regarding Re: Fix for Zope segfault on amd64; Goswin von Brederlow
    <[EMAIL PROTECTED]> adds:

Goswin> Shouldn't that bug appear on all 64bit architectures and the
Goswin> patch work on every architecture, even 32bit. Int is 32bit on
Goswin> all debian archs while long varies.

Agreed.  Since I only have access to i386 and amd64 I went for the
conservative approach.  However, I think there is a better way to fix
the bug that should be more general and avoids the #ifdef:

--- /tmp/Zope-2.6.4-src/lib/Components/initgroups/initgroups.c  2002-07-25 
17:54:02.000000000 -0400
+++ lib/Components/initgroups/initgroups.c      2005-01-22 09:41:56.882300943 
-0500
@@ -23,12 +23,15 @@
 initgroups_initgroups(PyObject *self, PyObject *args)
 {
        char *username;
-       gid_t gid;
+       long gid;
 
+       /* Use a long to get the gid rather than gid_t to avoid
+          dependencies on 32-bit versus 64-bit architectures,
+          etc.  */
        if (!PyArg_ParseTuple(args, "sl:initgroups", &username, &gid))
                return NULL;
 
-       if (initgroups(username, gid) == -1)
+       if (initgroups(username, (gid_t) gid) == -1)
                return PyErr_SetFromErrno(PyExc_OSError);
 
        Py_INCREF(Py_None);

This should work on most common architectures, would you agree?

Per

-- 
Per Bojsen                                              <[EMAIL PROTECTED]>
7 Francis Road
Billerica, MA 01821-3618
USA


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to