[Yum] anyone can comment this?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jul 28, 2002 at 10:04:02AM -0400, Jeff Johnson wrote:
> 
> Here's a guess:
> 	There's an obscure data driven off-by-1 bug that caused added
> 	packages to walf off the end of an array.

Nope, here's a pathc for the bindings (4.1, but the code in 4.0.4
bindings is very similarly broken).

Another way out would be to add with 'i', not 'u', as the segfault
is/was coming from an erased package dragged in from the database,
and erased packages don't have not steenkin' python objects attached.

Index: rpmts-py.c
===================================================================
RCS file: /cvs/devel/rpm/python/rpmts-py.c,v
retrieving revision 1.11
diff -u -r1.11 rpmts-py.c
--- rpmts-py.c  25 Jul 2002 17:03:15 -0000      1.11
+++ rpmts-py.c  28 Jul 2002 14:23:59 -0000
@@ -530,7 +530,8 @@
     if (!PyArg_ParseTuple(args, ":GetKeys")) return NULL;
 
     rpmtsGetKeys(s->ts, &data, &num);
-    if (data == NULL) {
+    if (data == NULL || num <= 0) {
+       data = _free(data);
        Py_INCREF(Py_None);
        return Py_None;
     }
@@ -538,12 +539,13 @@
     tuple = PyTuple_New(num);
 
     for (i = 0; i < num; i++) {
-       PyObject *obj = (PyObject *) data[i];
+       PyObject *obj;
+       obj = (data[i] ? (PyObject *) data[i] : Py_None);
        Py_INCREF(obj);
        PyTuple_SetItem(tuple, i, obj);
     }
 
-    free (data);
+    data = _free(data);
 
     return tuple;
 }

73 de Jeff

-- 
Jeff Johnson	ARS N3NPQ
jbj@xxxxxxxxxx (jbj@xxxxxxx)
Chapel Hill, NC


[Index of Archives]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux