Free was called with a struct as argument instead of a field from the
struct.
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index fce3599..ccf934f 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -93,7 +93,7 @@
for ( key=gdbm_firstkey(dp->di_dbm); key.dptr;
key = gdbm_nextkey(dp->di_dbm,okey)) {
size++;
- if(okey.dsize) free(okey);
+ if(okey.dsize) free(okey.dptr);
okey=key;
}
dp->di_size = size;
@@ -180,7 +180,7 @@
if ( item == 0 )
return NULL;
addlistitem(v, item);
- if(okey.dsize) free(okey);
+ if(okey.dsize) free(okey.dptr);
okey=key;
}
return v;