diff --git a/src/nxt_unit.c b/src/nxt_unit.c index 1fc9acd8d..062b5038e 100644 --- a/src/nxt_unit.c +++ b/src/nxt_unit.c @@ -3506,6 +3506,10 @@ nxt_unit_mmap_get(nxt_unit_ctx_t *ctx, nxt_unit_port_t *port, outgoing_size = lib->outgoing.size; + if (nxt_slow_path(outgoing_size == 0)) { + goto skip; + } + mm_end = lib->outgoing.elts + outgoing_size; for (mm = lib->outgoing.elts; mm < mm_end; mm++) { @@ -3556,6 +3560,8 @@ nxt_unit_mmap_get(nxt_unit_ctx_t *ctx, nxt_unit_port_t *port, hdr->oosm = 1; } +skip: + if (outgoing_size >= lib->shm_mmap_limit) { /* Cannot allocate more shared memory. */ pthread_mutex_unlock(&lib->outgoing.mutex);