[2/5] libctf: fix hash removal

Message ID 20190630181359.98029-2-nick.alcock@oracle.com
State New
Headers show
Series
  • [1/5] libctf: disambiguate hex output in dumps
Related show

Commit Message

Nick Alcock June 30, 2019, 6:13 p.m.
We must call htab_remove_elt with an element (in this case, a mocked-up
one with only the key populated, since no reasonable hash function will
need the other fields), not with the key alone.

libctf/
	* ctf-hash.c (ctf_dynhash_remove): Call with a mocked-up element.
---
 libctf/ctf-hash.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

-- 
2.22.0.238.g049a27acdc

Patch

diff --git a/libctf/ctf-hash.c b/libctf/ctf-hash.c
index adfe93e5c0..03a398e06c 100644
--- a/libctf/ctf-hash.c
+++ b/libctf/ctf-hash.c
@@ -176,7 +176,8 @@  ctf_dynhash_insert (ctf_dynhash_t *hp, void *key, void *value)
 void
 ctf_dynhash_remove (ctf_dynhash_t *hp, const void *key)
 {
-  htab_remove_elt (hp->htab, (void *) key);
+  ctf_helem_t hep = { (void *) key, NULL, NULL, NULL };
+  htab_remove_elt (hp->htab, &hep);
 }
 
 void *