From: Scott Griepentrog Date: Fri, 4 Sep 2015 14:26:46 +0000 (-0500) Subject: endpoint snapshot: avoid second cleanup on alloc failure X-Git-Tag: 13.6.0-rc1~55^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6002472a6286eabb5bba79282b62ba2a629a0660;p=thirdparty%2Fasterisk.git endpoint snapshot: avoid second cleanup on alloc failure In ast_endpoint_snapshot_create(), a failure to init the string fields results in two attempts to ao2_cleanup the same pointer. Removed RAII_VAR to eliminate problem. ASTERISK-25375 #close Reported by: Scott Griepentrog Change-Id: If4d9dfb1bbe3836b623642ec690b6d49b25e8979 --- diff --git a/main/endpoints.c b/main/endpoints.c index ce0ab0292a..0155adfebd 100644 --- a/main/endpoints.c +++ b/main/endpoints.c @@ -464,7 +464,7 @@ static void endpoint_snapshot_dtor(void *obj) struct ast_endpoint_snapshot *ast_endpoint_snapshot_create( struct ast_endpoint *endpoint) { - RAII_VAR(struct ast_endpoint_snapshot *, snapshot, NULL, ao2_cleanup); + struct ast_endpoint_snapshot *snapshot; int channel_count; struct ao2_iterator i; void *obj; @@ -500,7 +500,6 @@ struct ast_endpoint_snapshot *ast_endpoint_snapshot_create( } ao2_iterator_destroy(&i); - ao2_ref(snapshot, +1); return snapshot; }