Add lower bound check for manufacturer_data_len (Fix WGID: 311536) 01/173301/2
authorAtul Rai <a.rai@samsung.com>
Tue, 20 Mar 2018 10:17:05 +0000 (15:47 +0530)
committerAtul Rai <a.rai@samsung.com>
Tue, 20 Mar 2018 10:26:19 +0000 (10:26 +0000)
Change-Id: I2da413abe09c2ad1f3c98a9b69f561090ebcbfbc
Signed-off-by: Atul Rai <a.rai@samsung.com>
src/device.c

index 7310053..b51d8ed 100644 (file)
@@ -4675,6 +4675,12 @@ static void load_info(struct btd_device *device, const char *local,
                device->manufacturer_data_len = strtol(str, NULL, 10);
                g_free(str);
 
+               if (0 > device->manufacturer_data_len) {
+                       error("Invalid manufacturer_data_len: %d",
+                                       device->manufacturer_data_len);
+                       device->manufacturer_data_len = 0;
+               }
+
                str = g_key_file_get_string(key_file, "General", "ManufacturerData", NULL);
                if (str) {
                        if (device->manufacturer_data_len < DEV_MAX_MANUFACTURER_DATA_LEN) {