Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71028d20 authored by Vamsi Krishna Gattupalli's avatar Vamsi Krishna Gattupalli
Browse files

msm: adsprpc: Validate the CID



Validating the CID is a valid channel number.

Change-Id: Ia30c084801795882a24462fe0b9b4200a7084228
Acked-by: default avatarRanjith Goud Namala <rnamala@qti.qualcomm.com>
Signed-off-by: default avatarVamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
parent 70e9561d
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -118,6 +118,9 @@
#define GET_TABLE_IDX_FROM_CTXID(ctxid) \
	((ctxid & FASTRPC_CTX_TABLE_IDX_MASK) >> FASTRPC_CTX_TABLE_IDX_POS)

#define VALID_FASTRPC_CID(cid) \
	(cid >= ADSP_DOMAIN_ID && cid < NUM_CHANNELS)

/* Reserve few entries in context table for critical kernel and static RPC
 * calls to avoid user invocations from exhausting all entries.
 */
@@ -2066,7 +2069,11 @@ static int context_alloc(struct fastrpc_file *fl, uint32_t kernel,
		if (err)
			goto bail;
	}

	VERIFY(err, VALID_FASTRPC_CID(cid));
	if (err) {
		err = -ECHRNG;
		goto bail;
	}
	chan = &me->channel[cid];

	spin_lock_irqsave(&chan->ctxlock, irq_flags);