diff options
Diffstat (limited to 'Modules/dbmmodule.c')
-rw-r--r-- | Modules/dbmmodule.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c index 9086c84770..fa1fde2be2 100644 --- a/Modules/dbmmodule.c +++ b/Modules/dbmmodule.c @@ -208,11 +208,13 @@ dbm_keys(register dbmobject *dp, PyObject *unused) static PyObject * dbm_has_key(register dbmobject *dp, PyObject *args) { + char *tmp_ptr; datum key, val; int tmp_size; - if (!PyArg_ParseTuple(args, "s#:has_key", &key.dptr, &tmp_size)) + if (!PyArg_ParseTuple(args, "s#:has_key", &tmp_ptr, &tmp_size)) return NULL; + key.dptr = tmp_ptr; key.dsize = tmp_size; check_dbmobject_open(dp); val = dbm_fetch(dp->di_dbm, key); @@ -224,11 +226,13 @@ dbm_get(register dbmobject *dp, PyObject *args) { datum key, val; PyObject *defvalue = Py_None; + char *tmp_ptr; int tmp_size; if (!PyArg_ParseTuple(args, "s#|O:get", - &key.dptr, &tmp_size, &defvalue)) + &tmp_ptr, &tmp_size, &defvalue)) return NULL; + key.dptr = tmp_ptr; key.dsize = tmp_size; check_dbmobject_open(dp); val = dbm_fetch(dp->di_dbm, key); @@ -245,11 +249,13 @@ dbm_setdefault(register dbmobject *dp, PyObject *args) { datum key, val; PyObject *defvalue = NULL; + char *tmp_ptr; int tmp_size; if (!PyArg_ParseTuple(args, "s#|S:setdefault", - &key.dptr, &tmp_size, &defvalue)) + &tmp_ptr, &tmp_size, &defvalue)) return NULL; + key.dptr = tmp_ptr; key.dsize = tmp_size; check_dbmobject_open(dp); val = dbm_fetch(dp->di_dbm, key); |