diff --git a/src/box/phia.c b/src/box/phia.c index ddff372862eae5a7b0c1e23d5859bb4cc03c6e12..9d2f6e1ae5310ee7d3d360c893f3040650c99079 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 ee83fb2d32f33406532d49a96ff3205d5a43752a..70d25097382c13320858568d08cad241c44140da 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);