Commit c3a90c78 authored by Remi Denis-Courmont's avatar Remi Denis-Courmont Committed by David S. Miller

Phonet: do not reply to indication reset packets

This fixes a potential error packet loop.
Signed-off-by: default avatarRemi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e214a8cc
...@@ -72,6 +72,7 @@ struct phonetmsg { ...@@ -72,6 +72,7 @@ struct phonetmsg {
} pn_msg_u; } pn_msg_u;
}; };
#define PN_COMMON_MESSAGE 0xF0 #define PN_COMMON_MESSAGE 0xF0
#define PN_COMMGR 0x10
#define PN_PREFIX 0xE0 /* resource for extended messages */ #define PN_PREFIX 0xE0 /* resource for extended messages */
#define pn_submsg_id pn_msg_u.base.pn_submsg_id #define pn_submsg_id pn_msg_u.base.pn_submsg_id
#define pn_e_submsg_id pn_msg_u.ext.pn_e_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) ...@@ -261,6 +261,8 @@ static inline int can_respond(struct sk_buff *skb)
return 0; /* we are not the destination */ return 0; /* we are not the destination */
if (ph->pn_res == PN_PREFIX && !pskb_may_pull(skb, 5)) if (ph->pn_res == PN_PREFIX && !pskb_may_pull(skb, 5))
return 0; return 0;
if (ph->pn_res == PN_COMMGR) /* indications */
return 0;
ph = pn_hdr(skb); /* re-acquires the pointer */ ph = pn_hdr(skb); /* re-acquires the pointer */
pm = pn_msg(skb); pm = pn_msg(skb);
...@@ -309,7 +311,8 @@ static int send_reset_indications(struct sk_buff *rskb) ...@@ -309,7 +311,8 @@ static int send_reset_indications(struct sk_buff *rskb)
return pn_raw_send(data, sizeof(data), rskb->dev, return pn_raw_send(data, sizeof(data), rskb->dev,
pn_object(oph->pn_sdev, 0x00), 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);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment