Skip to contentSkip to conversation

relay: check array offset before using it

PATCH Applied Dan Carpenter 1 participant 1 message Oct 13, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 relay: check array offset before using it

Smatch complains that we started using the array offset before we checked that it was valid.

Fixes 017c59c042d0 ('relay: Use per CPU constructs for the relay channel buffer pointers')
kernel/relay.c +2 -2
index da79a10..8f18d31 100644
@@ -809,11 +809,11 @@ void relay_subbufs_consumed(struct rchan *chan,
 {
 	struct rchan_buf *buf;
 
-	if (!chan)
+	if (!chan || cpu >= NR_CPUS)
 		return;
 
 	buf = *per_cpu_ptr(chan->buf, cpu);
-	if (cpu >= NR_CPUS || !buf || subbufs_consumed > chan->n_subbufs)
+	if (!buf || subbufs_consumed > chan->n_subbufs)
 		return;
 
 	if (subbufs_consumed > buf->subbufs_produced - buf->subbufs_consumed)