Fix use-after-free in hash implementation.
Fix use-after-free in hash implementation.

If a value is added to the hash under a key that already exists the new value
replaces the old value for that key. Since key can be a pointer to data that
is part of value and freed by hash->free_value(), the key must be also
replaced and not only the value. Otherwise key potentially points to freed data.

Distrotech/kmod,lucasdemarchi/kmod,lpereira/kmod,pmmccorm/kmod,lucasdemarchi/kmod,Distrotech/kmod,Distrotech/kmod,pmmccorm/kmod,lpereira/kmod,pmmccorm/kmod,lucasdemarchi/kmod,lpereira/kmod