diff --git a/Modules/_csv.c b/Modules/_csv.c --- a/Modules/_csv.c +++ b/Modules/_csv.c @@ -1658,30 +1658,34 @@ PyInit__csv(void) _csvstate(module)->field_limit = 128 * 1024; /* Do I still need to add this var to the Module Dict? */ /* Add _dialects dictionary */ _csvstate(module)->dialects = PyDict_New(); if (_csvstate(module)->dialects == NULL) return NULL; Py_INCREF(_csvstate(module)->dialects); - if (PyModule_AddObject(module, "_dialects", _csvstate(module)->dialects)) + if (PyModule_AddObject(module, "_dialects", _csvstate(module)->dialects) == -1) { + Py_DECREF(_csvstate(module)->dialects); return NULL; + } /* Add quote styles into dictionary */ for (style = quote_styles; style->name; style++) { if (PyModule_AddIntConstant(module, style->name, style->style) == -1) return NULL; } /* Add the Dialect type */ Py_INCREF(&Dialect_Type); - if (PyModule_AddObject(module, "Dialect", (PyObject *)&Dialect_Type)) + if (PyModule_AddObject(module, "Dialect", (PyObject *)&Dialect_Type) == -1) { + Py_DECREF(&Dialect_Type); return NULL; + } /* Add the CSV exception object to the module. */ _csvstate(module)->error_obj = PyErr_NewException("_csv.Error", NULL, NULL); if (_csvstate(module)->error_obj == NULL) return NULL; Py_INCREF(_csvstate(module)->error_obj); PyModule_AddObject(module, "Error", _csvstate(module)->error_obj); return module;