s4:python bindings - handle NULL returns from "loadparm_init_global"
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Mon, 21 Mar 2011 09:32:24 +0000 (10:32 +0100)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Tue, 22 Mar 2011 18:52:57 +0000 (19:52 +0100)
Reviewed-by: Jelmer
Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Tue Mar 22 19:52:57 CET 2011 on sn-devel-104

source4/auth/gensec/pygensec.c
source4/param/pyparam.c
source4/param/pyparam_util.c

index cd05bd7ccf6434bc4a10bfb0ed93356daa19c2eb..5fe370313823d79cd66e0edbd2dc10aec6bd87c6 100644 (file)
@@ -113,6 +113,11 @@ static PyObject *py_gensec_start_client(PyTypeObject *type, PyObject *args, PyOb
                }
 
                settings->lp_ctx = loadparm_init_global(true);
+               if (settings->lp_ctx == NULL) {
+                       PyErr_NoMemory();
+                       PyObject_DEL(self);
+                       return NULL;
+               }
        }
 
        ev = tevent_context_init(self->talloc_ctx);
@@ -181,6 +186,11 @@ static PyObject *py_gensec_start_server(PyTypeObject *type, PyObject *args, PyOb
                }
 
                settings->lp_ctx = loadparm_init_global(true);
+               if (settings->lp_ctx == NULL) {
+                       PyErr_NoMemory();
+                       PyObject_DEL(self);
+                       return NULL;
+               }
        }
 
        ev = tevent_context_init(self->talloc_ctx);
index a248215fd9373e8bf33491e958844f3e85e4e433..3ba81468605212f14eb7f0550e324e5835f46e79 100644 (file)
@@ -335,6 +335,10 @@ static PyObject *py_lp_ctx_new(PyTypeObject *type, PyObject *args, PyObject *kwa
                return NULL;
        }
        ret->ptr = loadparm_init_global(false);
+       if (ret->ptr == NULL) {
+               PyErr_NoMemory();
+               return NULL;
+       }
        return (PyObject *)ret;
 }
 
index 528c007624d68faf2025473ef6f2a2a7db92bd25..cbf2095e855f5b58ac1bd5aeaf02364bcb4064a3 100644 (file)
@@ -35,6 +35,9 @@ _PUBLIC_ struct loadparm_context *lpcfg_from_py_object(TALLOC_CTX *mem_ctx, PyOb
 
        if (PyString_Check(py_obj)) {
                lp_ctx = loadparm_init_global(false);
+               if (lp_ctx == NULL) {
+                       return NULL;
+               }
                if (!lpcfg_load(lp_ctx, PyString_AsString(py_obj))) {
                        PyErr_Format(PyExc_RuntimeError, "Unable to load %s", 
                                     PyString_AsString(py_obj));