res_sorcery_realtime: Fix leak of sorcery object type.
authorMark Michelson <mmichelson@digium.com>
Mon, 29 Jun 2015 17:45:02 +0000 (12:45 -0500)
committerMark Michelson <mmichelson@digium.com>
Mon, 29 Jun 2015 19:34:58 +0000 (14:34 -0500)
This prevents a leak of a sorcery object type when realtime sorcery
objects are retrieved by fields or when multiple objects are retrieved.

The extent of this leak is that sorcery object types would be leaked.
These are allocated whenever an object type is registered with sorcery,
meaning that on module shutdown, these objects would be leaked. This
could be problematic if many reloads were performed, but it is not as
severe as if every sorcery object retrieved from realtime were being
leaked.

ASTERISK-25165 #close
Reported by Corey Farrell

Change-Id: I625c3b50eee4576670b7eeb013c81ad043b4b4f8

res/res_sorcery_realtime.c

index 65eb4b8..b2df298 100644 (file)
@@ -142,6 +142,8 @@ static struct ast_variable *sorcery_realtime_filter_objectset(struct ast_variabl
                }
        }
 
+       ao2_ref(object_type, -1);
+
        return objectset;
 }