diff --git a/tests/test_sorcery_memory_cache_thrash.c b/tests/test_sorcery_memory_cache_thrash.c
index c0d25feb3465605780071165afc9c2b10d3da94b..dfe7a7c81dea543d2a55b6fbf1af14f440c7e641 100644
--- a/tests/test_sorcery_memory_cache_thrash.c
+++ b/tests/test_sorcery_memory_cache_thrash.c
@@ -218,7 +218,11 @@ static struct sorcery_memory_cache_thrash *sorcery_memory_cache_thrash_create(co
 		/* This purposely holds no ref as the main thrash structure does */
 		thread->sorcery = thrash->sorcery;
 
-		AST_VECTOR_APPEND(&thrash->threads, thread);
+		if (AST_VECTOR_APPEND(&thrash->threads, thread)) {
+			ast_free(thread);
+			ao2_ref(thrash, -1);
+			return NULL;
+		}
 	}
 
 	return thrash;