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