From 6a9f3ae71db884e77b9c5fac00a57e3995b9cb8a Mon Sep 17 00:00:00 2001 From: frsyuki Date: Sun, 17 Apr 2011 06:48:36 +0900 Subject: [PATCH] c: fixed a double-free problem on msgpack_unpacker_release_zone #42 (aikar++) --- cpp/src/unpack.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cpp/src/unpack.c b/cpp/src/unpack.c index 52b834c9..3f776ed1 100644 --- a/cpp/src/unpack.c +++ b/cpp/src/unpack.c @@ -335,10 +335,11 @@ msgpack_zone* msgpack_unpacker_release_zone(msgpack_unpacker* mpac) return NULL; } - msgpack_zone* old = mpac->z; - mpac->z = r; + msgpack_zone old = *mpac->z; + *mpac->z = *r; + *r = old; - return old; + return r; } void msgpack_unpacker_reset_zone(msgpack_unpacker* mpac)