summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2004-01-20 15:14:55 (GMT)
committerGustavo Niemeyer <gustavo@niemeyer.net>2004-01-20 15:14:55 (GMT)
commit024f2de05f1dc5b8573f98426aa11bb9b07cc55e (patch)
treeafca611fc186f0d1fc6f6bec56fb86cb204aa7f1
parentc83dddf7fe7449d13435874da973c04946650a3d (diff)
downloadcpython-024f2de05f1dc5b8573f98426aa11bb9b07cc55e.zip
cpython-024f2de05f1dc5b8573f98426aa11bb9b07cc55e.tar.gz
cpython-024f2de05f1dc5b8573f98426aa11bb9b07cc55e.tar.bz2
Fixing #880531: raise TypeError when trying to use a None key with RECNO
or QUEUE database.
-rw-r--r--Modules/_bsddb.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c
index b86cd78..ba6af27 100644
--- a/Modules/_bsddb.c
+++ b/Modules/_bsddb.c
@@ -349,6 +349,13 @@ make_key_dbt(DBObject* self, PyObject* keyobj, DBT* key, int* pflags)
CLEAR_DBT(*key);
if (keyobj == Py_None) { /* TODO: is None really okay for keys? */
+ type = _DB_get_type(self);
+ if (type == DB_RECNO || type == DB_QUEUE) {
+ PyErr_SetString(
+ PyExc_TypeError,
+ "None keys not allowed for Recno and Queue DB's");
+ return 0;
+ }
/* no need to do anything, the structure has already been zeroed */
}