From 653bd1fc9f5eff22025b5aebc3393bd21a3688d3 Mon Sep 17 00:00:00 2001
From: Roman Tsisyk <roman@tsisyk.com>
Date: Thu, 19 May 2016 10:23:32 +0300
Subject: [PATCH] phia: check for OOM in phia_service_new()

---
 src/box/phia.c         | 4 ++++
 src/box/phia_engine.cc | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/src/box/phia.c b/src/box/phia.c
index ddff372862..9d2f6e1ae5 100644
--- a/src/box/phia.c
+++ b/src/box/phia.c
@@ -16471,6 +16471,10 @@ struct phia_service *
 phia_service_new(struct phia_env *env)
 {
 	struct phia_service *srv = ss_malloc(env->r.a, sizeof(struct phia_service));
+	if (srv == NULL) {
+		sr_oom(env->r.e);
+		return NULL;
+	}
 	srv->env = env;
 	sd_cinit(&srv->sdc);
 	return srv;
diff --git a/src/box/phia_engine.cc b/src/box/phia_engine.cc
index ee83fb2d32..70d2509738 100644
--- a/src/box/phia_engine.cc
+++ b/src/box/phia_engine.cc
@@ -169,6 +169,8 @@ phia_worker(void *arg)
 {
 	struct phia_env *env = (struct phia_env *) arg;
 	struct phia_service *srv = phia_service_new(env);
+	if (srv == NULL)
+		tnt_raise(OutOfMemory, sizeof(srv), "phia", "service");
 	while (pm_atomic_load_explicit(&worker_pool_run,
 				       pm_memory_order_relaxed)) {
 		int rc = phia_service_do(srv);
-- 
GitLab