*/
static PyTypeObject * PyLdb_GetPyType(const char *typename)
{
- PyObject *py_obj = NULL;
+ PyTypeObject *type = NULL;
+ bool ok;
if (ldb_module == NULL) {
ldb_module = PyImport_ImportModule("ldb");
}
}
- py_obj = PyObject_GetAttrString(ldb_module, typename);
+ type = (PyTypeObject *)PyObject_GetAttrString(ldb_module, typename);
- return (PyTypeObject*)py_obj;
+
+ if (type == NULL) {
+ PyErr_Format(PyExc_NameError,
+ "Unable to find type %s in ldb module",
+ typename);
+ return NULL;
+ }
+
+ ok = PyType_Check(type);
+ if (! ok) {
+ PyErr_Format(PyExc_TypeError,
+ "Expected type ldb.%s, not %s",
+ typename, Py_TYPE(type)->tp_name);
+ Py_DECREF(type);
+ return NULL;
+ }
+
+ return type;
}
bool pyldb_check_type(PyObject *obj, const char *typename)
-samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_auth_user_session
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_encrypt_netr_crypt_password
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_hive_open_ldb
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_net_replicate_chunk_1
-samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_net_replicate_init__1
samba.tests.segfault.samba.tests.segfault.SegfaultTests.test_net_replicate_init__3