diff --git a/main/channel_internal_api.c b/main/channel_internal_api.c
index 3f892ddef54aaa845b283b2a696c24153d975b50..3cfa6817be2d77e58f7235d22b755126e3f7d143 100644
--- a/main/channel_internal_api.c
+++ b/main/channel_internal_api.c
@@ -1344,6 +1344,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);
 	}