aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-02-03 16:58:12 +0100
committerMartin Willi <martin@revosec.ch>2011-02-03 17:09:09 +0100
commit7e0eae49857e462e48fceda6e186a1a60624f43d (patch)
tree28f91ad4c56883e639e19e14b2f98d4937c2c733
parentbf3e482141fb2e5e7685a8c555bee39414d6c4a9 (diff)
downloadstrongswan-7e0eae49857e462e48fceda6e186a1a60624f43d.tar.bz2
strongswan-7e0eae49857e462e48fceda6e186a1a60624f43d.tar.xz
Replace hashtable key if a put operation replaces value
Fixes a crash if lifetime of key is bound to value (i.e. key == value)
-rw-r--r--src/libstrongswan/utils/hashtable.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libstrongswan/utils/hashtable.c b/src/libstrongswan/utils/hashtable.c
index 3b7148e0b..49b0bb68c 100644
--- a/src/libstrongswan/utils/hashtable.c
+++ b/src/libstrongswan/utils/hashtable.c
@@ -249,6 +249,7 @@ METHOD(hashtable_t, put, void*,
{
old_value = pair->value;
pair->value = value;
+ pair->key = key;
break;
}
}