mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
threadpool: Fix leak in ast_threadpool_serializer_group error path.
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
This commit is contained in:
@@ -1384,10 +1384,12 @@ struct ast_taskprocessor *ast_threadpool_serializer_group(const char *name,
|
||||
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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user