irda: small read past the end of array in debug code
The "reason" can come from skb->data[] and it hasn't been capped so it can be from 0-255 instead of just 0-6. For example in irlmp_state_dtr() the code does: reason = skb->data[3]; ... irlmp_disconnect_indication(self, reason, skb); Also LMREASON has a couple other values which don't have entries in the irlmp_reasons[] array. And 0xff is a valid reason as well which means "unknown". So far as I can see we don't actually care about "reason" except for in the debug code. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
fd7fc25328
commit
e15465e180
@@ -256,7 +256,8 @@ static inline __u32 irlmp_get_daddr(const struct lsap_cb *self)
|
||||
return (self && self->lap) ? self->lap->daddr : 0;
|
||||
}
|
||||
|
||||
extern const char *irlmp_reasons[];
|
||||
const char *irlmp_reason_str(LM_REASON reason);
|
||||
|
||||
extern int sysctl_discovery_timeout;
|
||||
extern int sysctl_discovery_slots;
|
||||
extern int sysctl_discovery;
|
||||
|
||||
Reference in New Issue
Block a user