Fix svace issues 71/239571/4 accepted/tizen/unified/20200729.165620 submit/tizen/20200728.162511
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Mon, 27 Jul 2020 23:11:36 +0000 (01:11 +0200)
committerAdrian Szyndela <adrian.s@samsung.com>
Tue, 28 Jul 2020 13:46:25 +0000 (13:46 +0000)
This commit fixes double close and strcmp with NULL, as reported by SVACE.

Change-Id: Ie9e104dc1f5d2c65d6ea568c73e909602990cc31

src/interface/peripheral_interface_gpio.c
src/interface/peripheral_interface_pwm.c

index 850711da3b9edb82cc1463bc060a5f6625c55546..12d13e9fb9701d69d26c610aba766e17dfb16398 100644 (file)
@@ -131,6 +131,8 @@ int peripheral_interface_gpio_export(int pin)
                _E("close() failed: %m");
                ret = PERIPHERAL_ERROR_IO_ERROR;
                goto out;
+       } else {
+               fd = -1;
        }
 
        ret = __gpio_wait_for_udev(monitor, pin);
index 9c1497577209d03e0b6d8e2313e6aaa7b535480a..e8341a5dd01c68343a2ecda0a780d281f59486c3 100644 (file)
@@ -84,11 +84,13 @@ static int __pwm_wait_for_udev(struct udev_monitor *monitor, int chip, int pin)
 
                dev = udev_monitor_receive_device(monitor);
                if (dev) {
-                       if (strcmp(udev_device_get_sysname(dev), pwmchip_name) == 0 &&
-                               strcmp(udev_device_get_property_value(dev, "EXPORT"), pwm_name) == 0) {
-                               _D("udev for %s is initialized", pwm_name);
-                               udev_device_unref(dev);
-                               return 0;
+                       if (strcmp(udev_device_get_sysname(dev), pwmchip_name) == 0) {
+                               const char *prop = udev_device_get_property_value(dev, "EXPORT");
+                               if (prop && strcmp(prop, pwm_name) == 0) {
+                                       _D("udev for %s is initialized", pwm_name);
+                                       udev_device_unref(dev);
+                                       return 0;
+                               }
                        }
                        udev_device_unref(dev);
                }
@@ -138,6 +140,8 @@ int peripheral_interface_pwm_export(int chip, int pin)
                _E("close() failed: %m");
                ret = PERIPHERAL_ERROR_IO_ERROR;
                goto out;
+       } else {
+               fd = -1;
        }
 
        ret = __pwm_wait_for_udev(monitor, chip, pin);