Skip to content

Commit

Permalink
Phonet: do not reply to indication reset packets
Browse files Browse the repository at this point in the history
This fixes a potential error packet loop.

Signed-off-by: Remi Denis-Courmont <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Remi Denis-Courmont authored and davem330 committed Oct 27, 2008
1 parent e214a8c commit c3a90c7
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
1 change: 1 addition & 0 deletions include/linux/phonet.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 4 additions & 1 deletion net/phonet/af_phonet.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
}


Expand Down

0 comments on commit c3a90c7

Please sign in to comment.