]> git.ipfire.org Git - pakfire.git/commitdiff
_pakfire: Catch any errors when creating a repo failed
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 12 Mar 2021 19:48:54 +0000 (19:48 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 12 Mar 2021 19:48:54 +0000 (19:48 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/_pakfire/repo.c

index 3fb15b40dc8e9487566e5416539641bd8e66c95e..cee9054c79658a4bbc12d74a70e2da4f11bbd494 100644 (file)
@@ -48,7 +48,8 @@ static PyObject* Repo_new(PyTypeObject* type, PyObject* args, PyObject* kwds) {
 }
 
 static void Repo_dealloc(RepoObject* self) {
-       pakfire_repo_unref(self->repo);
+       if (self->repo)
+               pakfire_repo_unref(self->repo);
 
        Py_TYPE(self)->tp_free((PyObject *)self);
 }
@@ -63,6 +64,11 @@ static int Repo_init(RepoObject* self, PyObject* args, PyObject* kwds) {
 
        // Create a new repository
        self->repo = pakfire_repo_create(pakfire->pakfire, name);
+       if (!self->repo) {
+               PyErr_SetFromErrno(PyExc_OSError);
+               return -1;
+       }
+
        self->clean = clean;
 
        return 0;