Skip to content

Commit edb18ab

Browse files
committed
Issue #17926: Fix dbm.__contains__ on 64-bit big-endian machines.
1 parent 91b556e commit edb18ab

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

Misc/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ Core and Builtins
3434
Library
3535
-------
3636

37+
- Issue #17926: Fix dbm.__contains__ on 64-bit big-endian machines.
38+
3739
- Issue #17918: When using SSLSocket.accept(), if the SSL handshake failed
3840
on the new socket, the socket would linger indefinitely. Thanks to
3941
Peter Saveliev for reporting.

Modules/dbmmodule.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,13 @@ static int
168168
dbm_contains(register dbmobject *dp, PyObject *v)
169169
{
170170
datum key, val;
171+
char *ptr;
172+
Py_ssize_t size;
171173

172-
if (PyString_AsStringAndSize(v, (char **)&key.dptr,
173-
(Py_ssize_t *)&key.dsize)) {
174+
if (PyString_AsStringAndSize(v, &ptr, &size))
174175
return -1;
175-
}
176+
key.dptr = ptr;
177+
key.dsize = size;
176178

177179
/* Expand check_dbmobject_open to return -1 */
178180
if (dp->di_dbm == NULL) {

0 commit comments

Comments
 (0)