]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #9675: better error handling in bsddb
authorJesus Cea <jcea@jcea.es>
Fri, 5 Nov 2010 00:13:50 +0000 (00:13 +0000)
committerJesus Cea <jcea@jcea.es>
Fri, 5 Nov 2010 00:13:50 +0000 (00:13 +0000)
Modules/_bsddb.c

index 5266a2cfced06abfdb2602b3e0a865ed8c567d33..14517764e5ef90c575c4c40a582e37910280dec8 100644 (file)
@@ -9976,8 +9976,21 @@ PyMODINIT_FUNC  PyInit__bsddb(void)    /* Note the two underscores */
     }
 #endif
 
-    PyDict_SetItemString(d, "api", py_api);
-    Py_DECREF(py_api);
+    /* Check error control */
+    /*
+    ** PyErr_NoMemory();
+    ** py_api = NULL;
+    */
+
+    if (py_api) {
+        PyDict_SetItemString(d, "api", py_api);
+        Py_DECREF(py_api);
+    } else { /* Something bad happened */
+        PyErr_WriteUnraisable(m);
+        PyErr_Warn(PyExc_RuntimeWarning,
+                "_bsddb/_pybsddb C API will be not available");
+        PyErr_Clear();
+    }
 
     /* Check for errors */
     if (PyErr_Occurred()) {