Staging: et131x: Fix Smatch Warning of Buffer Overflow
authorRashika Kheria <rashika.kheria@gmail.com>
Thu, 24 Oct 2013 10:54:51 +0000 (16:24 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 28 Oct 2013 21:22:20 +0000 (14:22 -0700)
This patch fixes the following Sparse Warning in et131x.c-

drivers/staging/et131x/et131x.c:2957 nic_send_packet() error: buffer overflow 'frags' 17 <= 21
drivers/staging/et131x/et131x.c:2959 nic_send_packet() warn: buffer overflow 'frags' 17 <= 21
drivers/staging/et131x/et131x.c:2961 nic_send_packet() error: buffer overflow 'frags' 17 <= 21

Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/et131x/et131x.c

index 7cd3d34707585c90f9155db6eac3b14ac59f9da8..d9446c47bf2eb85a0417f888e8766e4cd8124b92 100644 (file)
@@ -2902,8 +2902,9 @@ static int nic_send_packet(struct et131x_adapter *adapter, struct tcb *tcb)
         * number of fragments. If needed, we can call this function,
         * although it is less efficient.
         */
-       if (nr_frags > 23)
-               return -EIO;
+
+       /* nr_frags should be no more than 18. */
+       BUILD_BUG_ON(MAX_SKB_FRAGS + 1 > 23);
 
        memset(desc, 0, sizeof(struct tx_desc) * (nr_frags + 1));