]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/ipx/af_ipx.c
[IPX]: Header length validation needed
[karo-tx-linux.git] / net / ipx / af_ipx.c
index 811d998725bc6728bec208ad90ef81157f8235a0..c13e86b14f69a4aa1e1ed0bcfb9acb948bf0f074 100644 (file)
@@ -28,7 +28,6 @@
  *     See net/ipx/ChangeLog.
  */
 
-#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/errno.h>
 #include <linux/if_arp.h>
@@ -1647,7 +1646,8 @@ static int ipx_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_ty
        ipx_pktsize     = ntohs(ipx->ipx_pktsize);
        
        /* Too small or invalid header? */
-       if (ipx_pktsize < sizeof(struct ipxhdr) || ipx_pktsize > skb->len)
+       if (ipx_pktsize < sizeof(struct ipxhdr) ||
+           !pskb_may_pull(skb, ipx_pktsize))
                goto drop;
                         
        if (ipx->ipx_checksum != IPX_NO_CHECKSUM &&