diff options
author | Dwayne C. Litzenberger <dlitz@dlitz.net> | 2009-08-02 15:18:32 -0400 |
---|---|---|
committer | Dwayne C. Litzenberger <dlitz@dlitz.net> | 2009-08-02 15:28:29 -0400 |
commit | 55482695ae5ea5ddc0dbe2b782fbfa65c38c9342 (patch) | |
tree | c5073a7fc0317a85a52ded24681f7ff0c1556bba /src/block_template.c | |
parent | ac105f4a9b4f6ec7ff456cee854987f3e8543745 (diff) | |
download | pycrypto-55482695ae5ea5ddc0dbe2b782fbfa65c38c9342.tar.gz |
block_template.c: Fix what looks like some memory leaks that occur during errors
Diffstat (limited to 'src/block_template.c')
-rw-r--r-- | src/block_template.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/block_template.c b/src/block_template.c index 9155e08..98ee2a4 100644 --- a/src/block_template.c +++ b/src/block_template.c @@ -164,6 +164,7 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict) PyErr_Format(PyExc_ValueError, "segment_size must be multiple of 8 " "between 1 and %i", BLOCK_SIZE); + return NULL; } } @@ -177,11 +178,13 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict) } else if (!PyCallable_Check(counter)) { PyErr_SetString(PyExc_ValueError, "'counter' parameter must be a callable object"); + return NULL; } } else { if (counter != NULL) { PyErr_SetString(PyExc_ValueError, "'counter' parameter only useful with CTR mode"); + return NULL; } } @@ -233,6 +236,7 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict) block_init(&(new->st), key, keylen); if (PyErr_Occurred()) { + Py_XDECREF(counter); Py_DECREF(new); return NULL; } |