Fixed memory leak.

This commit is contained in:
Hirokazu Yamamoto 2009-03-03 22:05:57 +00:00
parent 0b15541ae2
commit 8355155f22
2 changed files with 24 additions and 4 deletions

View File

@ -629,13 +629,18 @@ SHA256_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (data_obj) if (data_obj)
GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL); GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL);
if ((new = newSHA256object()) == NULL) if ((new = newSHA256object()) == NULL) {
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
}
sha_init(new); sha_init(new);
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
Py_DECREF(new); Py_DECREF(new);
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
} }
if (data_obj) { if (data_obj) {
@ -665,13 +670,18 @@ SHA224_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (data_obj) if (data_obj)
GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL); GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL);
if ((new = newSHA224object()) == NULL) if ((new = newSHA224object()) == NULL) {
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
}
sha224_init(new); sha224_init(new);
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
Py_DECREF(new); Py_DECREF(new);
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
} }
if (data_obj) { if (data_obj) {

View File

@ -695,13 +695,18 @@ SHA512_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (data_obj) if (data_obj)
GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL); GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL);
if ((new = newSHA512object()) == NULL) if ((new = newSHA512object()) == NULL) {
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
}
sha512_init(new); sha512_init(new);
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
Py_DECREF(new); Py_DECREF(new);
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
} }
if (data_obj) { if (data_obj) {
@ -731,13 +736,18 @@ SHA384_new(PyObject *self, PyObject *args, PyObject *kwdict)
if (data_obj) if (data_obj)
GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL); GET_BUFFER_VIEW_OR_ERROUT(data_obj, &buf, NULL);
if ((new = newSHA384object()) == NULL) if ((new = newSHA384object()) == NULL) {
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
}
sha384_init(new); sha384_init(new);
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
Py_DECREF(new); Py_DECREF(new);
if (data_obj)
PyBuffer_Release(&buf);
return NULL; return NULL;
} }
if (data_obj) { if (data_obj) {