Phonet: do not reply to indication reset packets
This fixes a potential error packet loop. Signed-off-by: Remi Denis-Courmont <remi.denis-courmont@nokia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
e214a8cc7a
Коммит
c3a90c788b
|
@ -72,6 +72,7 @@ struct phonetmsg {
|
|||
} pn_msg_u;
|
||||
};
|
||||
#define PN_COMMON_MESSAGE 0xF0
|
||||
#define PN_COMMGR 0x10
|
||||
#define PN_PREFIX 0xE0 /* resource for extended messages */
|
||||
#define pn_submsg_id pn_msg_u.base.pn_submsg_id
|
||||
#define pn_e_submsg_id pn_msg_u.ext.pn_e_submsg_id
|
||||
|
|
|
@ -261,6 +261,8 @@ static inline int can_respond(struct sk_buff *skb)
|
|||
return 0; /* we are not the destination */
|
||||
if (ph->pn_res == PN_PREFIX && !pskb_may_pull(skb, 5))
|
||||
return 0;
|
||||
if (ph->pn_res == PN_COMMGR) /* indications */
|
||||
return 0;
|
||||
|
||||
ph = pn_hdr(skb); /* re-acquires the pointer */
|
||||
pm = pn_msg(skb);
|
||||
|
@ -309,7 +311,8 @@ static int send_reset_indications(struct sk_buff *rskb)
|
|||
|
||||
return pn_raw_send(data, sizeof(data), rskb->dev,
|
||||
pn_object(oph->pn_sdev, 0x00),
|
||||
pn_object(oph->pn_rdev, oph->pn_robj), 0x10);
|
||||
pn_object(oph->pn_rdev, oph->pn_robj),
|
||||
PN_COMMGR);
|
||||
}
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче