summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/nxt_main_process.c5
-rw-r--r--src/nxt_port.c2
-rw-r--r--src/nxt_port_memory.c15
-rw-r--r--src/nxt_port_socket.c12
-rw-r--r--src/nxt_router.c30
5 files changed, 42 insertions, 22 deletions
diff --git a/src/nxt_main_process.c b/src/nxt_main_process.c
index f0b55c1b..27bf01f5 100644
--- a/src/nxt_main_process.c
+++ b/src/nxt_main_process.c
@@ -867,8 +867,9 @@ nxt_main_cleanup_worker_process(nxt_task_t *task, nxt_pid_t pid)
buf = nxt_buf_mem_ts_alloc(task, task->thread->engine->mem_pool,
sizeof(pid));
-
- nxt_assert(buf != NULL);
+ if (nxt_slow_path(buf == NULL)) {
+ continue;
+ }
buf->mem.free = nxt_cpymem(buf->mem.free, &pid, sizeof(pid));
diff --git a/src/nxt_port.c b/src/nxt_port.c
index 1fcb0244..12de8afb 100644
--- a/src/nxt_port.c
+++ b/src/nxt_port.c
@@ -313,7 +313,7 @@ nxt_port_process_ready_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg)
process->ready = 1;
- nxt_assert(nxt_queue_is_empty(&process->ports) == 0);
+ nxt_assert(!nxt_queue_is_empty(&process->ports));
port = nxt_process_port_first(process);
diff --git a/src/nxt_port_memory.c b/src/nxt_port_memory.c
index 31bab352..fbfefc32 100644
--- a/src/nxt_port_memory.c
+++ b/src/nxt_port_memory.c
@@ -221,6 +221,16 @@ nxt_port_incoming_port_mmap(nxt_task_t *task, nxt_process_t *process,
mmap_handler->hdr = hdr;
+ if (nxt_slow_path(hdr->src_pid != process->pid
+ || hdr->dst_pid != nxt_pid))
+ {
+ nxt_log(task, NXT_LOG_WARN, "unexpected pid in mmap header detected: "
+ "%PI != %PI or %PI != %PI", hdr->src_pid, process->pid,
+ hdr->dst_pid, nxt_pid);
+
+ return NULL;
+ }
+
nxt_thread_mutex_lock(&process->incoming.mutex);
port_mmap = nxt_port_mmap_at(&process->incoming, hdr->id);
@@ -236,9 +246,6 @@ nxt_port_incoming_port_mmap(nxt_task_t *task, nxt_process_t *process,
goto fail;
}
- nxt_assert(hdr->src_pid == process->pid);
- nxt_assert(hdr->dst_pid == nxt_pid);
-
port_mmap->mmap_handler = mmap_handler;
nxt_port_mmap_handler_use(mmap_handler, 1);
@@ -843,8 +850,6 @@ nxt_port_mmap_read(nxt_task_t *task, nxt_port_recv_msg_t *msg)
end = (nxt_port_mmap_msg_t *) b->mem.free;
while (mmap_msg < end) {
- nxt_assert(mmap_msg + 1 <= end);
-
nxt_debug(task, "mmap_msg={%D, %D, %D} from %PI",
mmap_msg->mmap_id, mmap_msg->chunk_id, mmap_msg->size,
msg->port_msg.pid);
diff --git a/src/nxt_port_socket.c b/src/nxt_port_socket.c
index 04f9c30c..65096177 100644
--- a/src/nxt_port_socket.c
+++ b/src/nxt_port_socket.c
@@ -676,7 +676,7 @@ nxt_port_frag_find(nxt_task_t *task, nxt_port_t *port, uint32_t stream,
return lhq.value;
default:
- nxt_log(task, NXT_LOG_WARN, "frag stream #%uD not found", stream);
+ nxt_log(task, NXT_LOG_INFO, "frag stream #%uD not found", stream);
return NULL;
}
@@ -719,7 +719,9 @@ nxt_port_read_msg_process(nxt_task_t *task, nxt_port_t *port,
fmsg = nxt_port_frag_find(task, port, msg->port_msg.stream,
msg->port_msg.mf == 0);
- nxt_assert(fmsg != NULL);
+ if (nxt_slow_path(fmsg == NULL)) {
+ goto fmsg_failed;
+ }
if (nxt_fast_path(fmsg->cancelled == 0)) {
@@ -757,7 +759,9 @@ nxt_port_read_msg_process(nxt_task_t *task, nxt_port_t *port,
fmsg = nxt_port_frag_start(task, port, msg);
- nxt_assert(fmsg != NULL);
+ if (nxt_slow_path(fmsg == NULL)) {
+ goto fmsg_failed;
+ }
fmsg->port_msg.nf = 0;
fmsg->port_msg.mf = 0;
@@ -785,6 +789,8 @@ nxt_port_read_msg_process(nxt_task_t *task, nxt_port_t *port,
}
}
+fmsg_failed:
+
if (msg->port_msg.mmap && orig_b != b) {
/*
diff --git a/src/nxt_router.c b/src/nxt_router.c
index 36f5264d..5e1b8353 100644
--- a/src/nxt_router.c
+++ b/src/nxt_router.c
@@ -746,16 +746,19 @@ nxt_router_conf_data_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg)
nxt_buf_used_size(msg->buf),
(size_t) nxt_buf_used_size(msg->buf), msg->buf->mem.pos);
- b = nxt_buf_chk_make_plain(tmcf->conf->mem_pool, msg->buf, msg->size);
-
- nxt_assert(b != NULL);
-
tmcf->conf->router = nxt_router;
tmcf->stream = msg->port_msg.stream;
tmcf->port = nxt_runtime_port_find(task->thread->runtime,
msg->port_msg.pid,
msg->port_msg.reply_port);
+ b = nxt_buf_chk_make_plain(tmcf->conf->mem_pool, msg->buf, msg->size);
+ if (nxt_slow_path(b == NULL)) {
+ nxt_router_conf_error(task, tmcf);
+
+ return;
+ }
+
ret = nxt_router_conf_create(task, tmcf, b->mem.pos, b->mem.free);
if (nxt_fast_path(ret == NXT_OK)) {
@@ -1731,7 +1734,9 @@ nxt_router_listen_socket_error(nxt_task_t *task, nxt_port_recv_msg_t *msg,
in = nxt_buf_chk_make_plain(tmcf->mem_pool, msg->buf, msg->size);
- nxt_assert(in != NULL);
+ if (nxt_slow_path(in == NULL)) {
+ return;
+ }
p = in->mem.pos;
@@ -2756,7 +2761,10 @@ nxt_router_response_error_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg,
if (res == NXT_OK) {
port = ra->app_port;
- nxt_assert(port != NULL);
+ if (nxt_slow_path(port == NULL)) {
+ nxt_log(task, NXT_LOG_ERR, "port is NULL in cancelled ra");
+ return;
+ }
nxt_port_rpc_ex_set_peer(task, task->thread->engine->port, rc,
port->pid);
@@ -2865,10 +2873,10 @@ nxt_router_app_use(nxt_task_t *task, nxt_app_t *app, int i)
nxt_assert(app->processes == 0);
nxt_assert(app->idle_processes == 0);
nxt_assert(app->pending_processes == 0);
- nxt_assert(nxt_queue_is_empty(&app->requests) != 0);
- nxt_assert(nxt_queue_is_empty(&app->ports) != 0);
- nxt_assert(nxt_queue_is_empty(&app->spare_ports) != 0);
- nxt_assert(nxt_queue_is_empty(&app->idle_ports) != 0);
+ nxt_assert(nxt_queue_is_empty(&app->requests));
+ nxt_assert(nxt_queue_is_empty(&app->ports));
+ nxt_assert(nxt_queue_is_empty(&app->spare_ports));
+ nxt_assert(nxt_queue_is_empty(&app->idle_ports));
nxt_thread_mutex_destroy(&app->mutex);
nxt_free(app);
@@ -3349,7 +3357,7 @@ nxt_router_adjust_idle_timer(nxt_task_t *task, void *obj, void *data)
while (app->idle_processes > app->spare_processes) {
- nxt_assert(nxt_queue_is_empty(&app->idle_ports) == 0);
+ nxt_assert(!nxt_queue_is_empty(&app->idle_ports));
lnk = nxt_queue_first(&app->idle_ports);
port = nxt_queue_link_data(lnk, nxt_port_t, idle_link);