ast_threadpool_serializer_group leaks a reference to ser when listener
is allocated but tps is not. Although listener takes the reference to
ser cleanup functions are not run without tps.
ASTERISK-26191 #close
Change-Id: Ie3ccf69a3f1e676c2ef62a77067c0cb57dc9a585
ao2_ref(ser, -1);
return NULL;
}
- /* ser ref transferred to listener */
tps = ast_taskprocessor_create_with_listener(name, listener);
- if (tps && shutdown_group) {
+ if (!tps) {
+ /* ser ref transferred to listener but not cleaned without tps */
+ ao2_ref(ser, -1);
+ } else if (shutdown_group) {
serializer_shutdown_group_inc(shutdown_group);
}