diff --git a/main/channel_internal_api.c b/main/channel_internal_api.c
index a2fafbf338af2f450fce0e10852679f3b561a931..4e8539889798de3b56e3ed062d3045daf5bf61d5 100644
--- a/main/channel_internal_api.c
+++ b/main/channel_internal_api.c
@@ -1449,6 +1449,10 @@ struct ast_channel *__ast_channel_internal_alloc(void (*destructor)(void *obj),
 	tmp = ao2_alloc(sizeof(*tmp), destructor);
 #endif
 
+	if (!tmp) {
+		return NULL;
+	}
+
 	if ((ast_string_field_init(tmp, 128))) {
 		return ast_channel_unref(tmp);
 	}