pydsdb_dns: Use TypeError not LdbError for mismatched types
authorAndrew Bartlett <abartlet@samba.org>
Mon, 10 Apr 2017 04:06:13 +0000 (16:06 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 10 Jun 2017 19:48:20 +0000 (21:48 +0200)
This avoids the samba-tool command handling code blowing up when trying to parse an LdbError

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
source4/dns_server/pydns.c

index 3de9739f1f11a0e50d64817ee341cf37f298b7e3..7fc8f0c8811fe543ac24cd033328912faecac20f 100644 (file)
 /* FIXME: These should be in a header file somewhere */
 #define PyErr_LDB_OR_RAISE(py_ldb, ldb) \
        if (!py_check_dcerpc_type(py_ldb, "ldb", "Ldb")) { \
-               PyErr_SetString(py_ldb_get_exception(), "Ldb connection object required"); \
+               PyErr_SetString(PyExc_TypeError, "Ldb connection object required"); \
                return NULL; \
        } \
        ldb = pyldb_Ldb_AsLdbContext(py_ldb);
 
 #define PyErr_LDB_DN_OR_RAISE(py_ldb_dn, dn) \
        if (!py_check_dcerpc_type(py_ldb_dn, "ldb", "Dn")) { \
-               PyErr_SetString(py_ldb_get_exception(), "ldb Dn object required"); \
+               PyErr_SetString(PyExc_TypeError, "ldb Dn object required"); \
                return NULL; \
        } \
        dn = pyldb_Dn_AsDn(py_ldb_dn);
 
-static PyObject *py_ldb_get_exception(void)
-{
-       PyObject *mod = PyImport_ImportModule("ldb");
-       if (mod == NULL)
-               return NULL;
-
-       return PyObject_GetAttrString(mod, "LdbError");
-}
-
 static PyObject *py_dnsp_DnssrvRpcRecord_get_list(struct dnsp_DnssrvRpcRecord *records,
                                                  uint16_t num_records)
 {
@@ -168,7 +159,7 @@ static PyObject *py_dsdb_dns_extract(PyObject *self, PyObject *args)
        }
 
        if (!py_check_dcerpc_type(py_dns_el, "ldb", "MessageElement")) {
-               PyErr_SetString(py_ldb_get_exception(),
+               PyErr_SetString(PyExc_TypeError,
                                "ldb MessageElement object required");
                return NULL;
        }