diff options
-rw-r--r-- | include/linux/phonet.h | 1 | ||||
-rw-r--r-- | net/phonet/af_phonet.c | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/phonet.h b/include/linux/phonet.h index 1ef5a0781831..e5126cff9b2a 100644 --- a/include/linux/phonet.h +++ b/include/linux/phonet.h | |||
@@ -38,6 +38,7 @@ | |||
38 | #define PNPIPE_IFINDEX 2 | 38 | #define PNPIPE_IFINDEX 2 |
39 | 39 | ||
40 | #define PNADDR_ANY 0 | 40 | #define PNADDR_ANY 0 |
41 | #define PNADDR_BROADCAST 0xFC | ||
41 | #define PNPORT_RESOURCE_ROUTING 0 | 42 | #define PNPORT_RESOURCE_ROUTING 0 |
42 | 43 | ||
43 | /* Values for PNPIPE_ENCAP option */ | 44 | /* Values for PNPIPE_ENCAP option */ |
diff --git a/net/phonet/af_phonet.c b/net/phonet/af_phonet.c index a662e62a99cf..f60c0c2aacba 100644 --- a/net/phonet/af_phonet.c +++ b/net/phonet/af_phonet.c | |||
@@ -168,6 +168,12 @@ static int pn_send(struct sk_buff *skb, struct net_device *dev, | |||
168 | goto drop; | 168 | goto drop; |
169 | } | 169 | } |
170 | 170 | ||
171 | /* Broadcast sending is not implemented */ | ||
172 | if (pn_addr(dst) == PNADDR_BROADCAST) { | ||
173 | err = -EOPNOTSUPP; | ||
174 | goto drop; | ||
175 | } | ||
176 | |||
171 | skb_reset_transport_header(skb); | 177 | skb_reset_transport_header(skb); |
172 | WARN_ON(skb_headroom(skb) & 1); /* HW assumes word alignment */ | 178 | WARN_ON(skb_headroom(skb) & 1); /* HW assumes word alignment */ |
173 | skb_push(skb, sizeof(struct phonethdr)); | 179 | skb_push(skb, sizeof(struct phonethdr)); |