What happens with those return NULL cases if the data.tar or control.tar entries don't exist? Is that a new leak? I expected a self.release() before those cases.
(Or, alternatively, I don't understand the 'return self.release()' idiom.)
There's also a minor typo "file descritor" in the header. Do what you wish with this.
Hello Julian, the file descriptor leak patch has a section that I'm not sure about:
static PyObject *debfile_ new(PyTypeObjec t *type, PyObject *args, PyObject *kwds) t*)ararchive_ new(type, args, kwds); ect<PyDebFileOb ject> self((PyDebFile Object* )ararchive_ new(type, args, kwds));
{
- PyDebFileObject *self = (PyDebFileObjec
+ PyApt_UniqueObj
if (self == NULL)
return NULL;
// DebFile get_tar( self, "control.tar"); get_tar( self.get( ), "control.tar");
- self->control = debfile_
+ self->control = debfile_
if (self->control == NULL)
return NULL;
- self->data = debfile_ get_tar( self, "data.tar"); get_tar( self.get( ), "data.tar");
+ self->data = debfile_
if (self->data == NULL)
return NULL;
@@ -603,7 +603,7 @@ static PyObject *debfile_ new(PyTypeObjec t *type, PyObject *args, PyObject *kwds) >Fd.Read( value, member->Size, true); >debian_ binary = PyBytes_ FromStringAndSi ze(value, member->Size);
self-
self-
delete[] value;
- return self;
+ return self.release();
}
What happens with those return NULL cases if the data.tar or control.tar entries don't exist? Is that a new leak? I expected a self.release() before those cases.
(Or, alternatively, I don't understand the 'return self.release()' idiom.)
There's also a minor typo "file descritor" in the header. Do what you wish with this.
Thanks