diff options
author | Scott Griepentrog <scott@griepentrog.com> | 2015-09-04 09:26:46 -0500 |
---|---|---|
committer | Scott Griepentrog <sgriepentrog@digium.com> | 2015-09-04 09:33:33 -0500 |
commit | 6002472a6286eabb5bba79282b62ba2a629a0660 (patch) | |
tree | 54cbef9be1ce33123a672032abe399e04ff5dac0 /main | |
parent | 2733638d0dd4ab7dd44a8688aa8ef12d72a9c1b2 (diff) |
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
Diffstat (limited to 'main')
-rw-r--r-- | main/endpoints.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/main/endpoints.c b/main/endpoints.c index ce0ab0292..0155adfeb 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; } |