diff --git a/src/urpc/umq/umq_ub/umq_ub_impl.c b/src/urpc/umq/umq_ub/umq_ub_impl.c index 63dcb4b1bedc761494ef2bec94cc884bd3e5ed5c..26e84dc8acd6325e94ba2a2e435403fcddc9c874 100644 --- a/src/urpc/umq/umq_ub/umq_ub_impl.c +++ b/src/urpc/umq/umq_ub/umq_ub_impl.c @@ -3113,6 +3113,11 @@ static int umq_ub_data_plan_import_mem(uint64_t umqh_tp, umq_buf_t *rx_buf, uint } ub_queue_t *queue = (ub_queue_t *)(uintptr_t)umqh_tp; + if (queue->bind_ctx == NULL) { + UMQ_LIMIT_VLOG_INFO("The queue has been unbound\n"); + return -UMQ_ERR_EINVAL; + } + pthread_mutex_t *imported_tseg_list_mutex_lock = &queue->dev_ctx->remote_imported_info->imported_tseg_list_mutex[queue->bind_ctx->remote_eid_id]; pthread_mutex_lock(imported_tseg_list_mutex_lock); @@ -3271,6 +3276,13 @@ static int process_rx_msg(urma_cr_t *cr, umq_buf_t *buf, ub_queue_t *queue, umq_ *qbuf_status = UMQ_MEMPOOL_UPDATE_FAILED; return UMQ_SUCCESS; } + + if (queue->bind_ctx == NULL) { + UMQ_LIMIT_VLOG_ERR("queue has been unbind\n"); + *qbuf_status = UMQ_MEMPOOL_UPDATE_FAILED; + return UMQ_SUCCESS; + } + queue->dev_ctx->remote_imported_info-> tesg_imported[queue->bind_ctx->remote_eid_id][imm.mem_import.mempool_id] = true; *qbuf_status = UMQ_MEMPOOL_UPDATE_SUCCESS;