[9610] wlbt: Fix for tcp option error
authordujeong.lee <dujeong.lee@samsung.com>
Mon, 27 Aug 2018 05:28:18 +0000 (14:28 +0900)
committerhskang <hs1218.kang@samsung.com>
Mon, 27 Aug 2018 23:44:38 +0000 (08:44 +0900)
Change-Id: Ibef06ff802017d22462c8a49f66fa93e189c26d1
Signed-off-by: dujeong.lee <dujeong.lee@samsung.com>
drivers/net/wireless/scsc/hip4_sampler.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index da03f8f..1311272
@@ -443,6 +443,11 @@ void hip4_sampler_tcp_decode(struct slsi_dev *sdev, struct net_device *dev, u8 *
                                u32 optlen, len = 0;
 
                                optlen = (tcp_hdr->doff - 5) * 4;
+                               if (optlen > 60) {
+                                       SLSI_WARN(sdev, "Error optlen : %u\n", optlen);
+                                       optlen = 60;
+                               }
+
                                options = (u8 *)tcp_hdr + TCP_ACK_SUPPRESSION_OPTIONS_OFFSET;
 
                                while (optlen > 0) {
@@ -464,7 +469,10 @@ void hip4_sampler_tcp_decode(struct slsi_dev *sdev, struct net_device *dev, u8 *
                                        if (len == 0)
                                                break;
 
-                                       optlen -= len;
+                                       if (optlen >= len)
+                                               optlen -= len;
+                                       else
+                                               optlen = 0;
                                        options += len;
                                }
                        }