in ext/bdb.c function db_put:
change this:
if ( flags & DB_APPEND == DB_APPEND ) {
VALUE str = rb_str_new(key.data,key.size);
if (key.data) free(key.data);
return str;
}
to this:
if ( (flags & DB_APPEND )== DB_APPEND ) {
VALUE str = rb_str_new(key.data,key.size);
/* if (key.data) free(key.data); */
return str;
}