misc: fastrpc: fix memory corruption on probe
[platform/kernel/linux-starfive.git] / drivers / misc / fastrpc.c
index 93ebd17..8809177 100644 (file)
@@ -1943,6 +1943,11 @@ static int fastrpc_cb_probe(struct platform_device *pdev)
        of_property_read_u32(dev->of_node, "qcom,nsessions", &sessions);
 
        spin_lock_irqsave(&cctx->lock, flags);
+       if (cctx->sesscount >= FASTRPC_MAX_SESSIONS) {
+               dev_err(&pdev->dev, "too many sessions\n");
+               spin_unlock_irqrestore(&cctx->lock, flags);
+               return -ENOSPC;
+       }
        sess = &cctx->session[cctx->sesscount];
        sess->used = false;
        sess->valid = true;