From: Martin v. Löwis <martin@v.loewis.de> Date: Thu, 14 Aug 2008 15:52:23 +0000 (+0000) Subject: Use s* to receive data. Fixes #3552. X-Git-Tag: v3.0b3~111 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7b9cb2579c7edf49e4042bfb678ae2dc646d78ef;p=python Use s* to receive data. Fixes #3552. --- diff --git a/Modules/md5module.c b/Modules/md5module.c index f024b738ba..0f3c6d9449 100644 --- a/Modules/md5module.c +++ b/Modules/md5module.c @@ -411,14 +411,14 @@ PyDoc_STRVAR(MD5_update__doc__, static PyObject * MD5_update(MD5object *self, PyObject *args) { - unsigned char *cp; - int len; - - if (!PyArg_ParseTuple(args, "s#:update", &cp, &len)) + Py_buffer buf; + + if (!PyArg_ParseTuple(args, "s*:update", &buf)) return NULL; - md5_process(&self->hash_state, cp, len); + md5_process(&self->hash_state, buf.buf, buf.len); + PyBuffer_Release(&buf); Py_INCREF(Py_None); return Py_None; } @@ -511,11 +511,11 @@ MD5_new(PyObject *self, PyObject *args, PyObject *kwdict) { static char *kwlist[] = {"string", NULL}; MD5object *new; - unsigned char *cp = NULL; - int len; + Py_buffer buf; + buf.buf = NULL; - if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|s#:new", kwlist, - &cp, &len)) { + if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|s*:new", kwlist, + &buf)) { return NULL; } @@ -528,8 +528,10 @@ MD5_new(PyObject *self, PyObject *args, PyObject *kwdict) Py_DECREF(new); return NULL; } - if (cp) - md5_process(&new->hash_state, cp, len); + if (buf.buf) { + md5_process(&new->hash_state, buf.buf, buf.len); + PyBuffer_Release(&buf); + } return (PyObject *)new; } diff --git a/Modules/sha1module.c b/Modules/sha1module.c index 2cbfb50b06..b21b21d6d6 100644 --- a/Modules/sha1module.c +++ b/Modules/sha1module.c @@ -387,14 +387,14 @@ PyDoc_STRVAR(SHA1_update__doc__, static PyObject * SHA1_update(SHA1object *self, PyObject *args) { - unsigned char *cp; - int len; + Py_buffer buf; - if (!PyArg_ParseTuple(args, "s#:update", &cp, &len)) + if (!PyArg_ParseTuple(args, "s*:update", &buf)) return NULL; - sha1_process(&self->hash_state, cp, len); + sha1_process(&self->hash_state, buf.buf, buf.len); + PyBuffer_Release(&buf); Py_INCREF(Py_None); return Py_None; } @@ -487,11 +487,10 @@ SHA1_new(PyObject *self, PyObject *args, PyObject *kwdict) { static char *kwlist[] = {"string", NULL}; SHA1object *new; - unsigned char *cp = NULL; - int len; + Py_buffer buf; - if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|s#:new", kwlist, - &cp, &len)) { + if (!PyArg_ParseTupleAndKeywords(args, kwdict, "|s*:new", kwlist, + &buf)) { return NULL; } @@ -504,8 +503,10 @@ SHA1_new(PyObject *self, PyObject *args, PyObject *kwdict) Py_DECREF(new); return NULL; } - if (cp) - sha1_process(&new->hash_state, cp, len); + if (buf.buf) { + sha1_process(&new->hash_state, buf.buf, buf.len); + PyBuffer_Release(&buf); + } return (PyObject *)new; }