Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef12d456 authored by Roland Dreier's avatar Roland Dreier
Browse files

IPoIB: Fix oops with raw sockets



ipoib_hard_header() needs to handle the case that daddr is NULL.  This
can happen when packets are injected via a raw socket, and IPoIB
shouldn't oops in this case.

Reported by Anton Blanchard <anton@samba.org>

Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent a07bacca
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -723,7 +723,7 @@ static int ipoib_hard_header(struct sk_buff *skb,
	 * destination address onto the front of the skb so we can
	 * destination address onto the front of the skb so we can
	 * figure out where to send the packet later.
	 * figure out where to send the packet later.
	 */
	 */
	if (!skb->dst || !skb->dst->neighbour) {
	if ((!skb->dst || !skb->dst->neighbour) && daddr) {
		struct ipoib_pseudoheader *phdr =
		struct ipoib_pseudoheader *phdr =
			(struct ipoib_pseudoheader *) skb_push(skb, sizeof *phdr);
			(struct ipoib_pseudoheader *) skb_push(skb, sizeof *phdr);
		memcpy(phdr->hwaddr, daddr, INFINIBAND_ALEN);
		memcpy(phdr->hwaddr, daddr, INFINIBAND_ALEN);