core: skip chips and lines on error in gpiod_line_find_by_name()
authorBartosz Golaszewski <bartekgola@gmail.com>
Tue, 17 Jan 2017 16:04:46 +0000 (17:04 +0100)
committerBartosz Golaszewski <bartekgola@gmail.com>
Tue, 17 Jan 2017 16:04:46 +0000 (17:04 +0100)
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
src/lib/core.c

index 011ffa485d09dd6f59ba3aae45baa46c701c0847..129a15afffee00184012db3bac376f114d959a0c 100644 (file)
@@ -679,8 +679,14 @@ struct gpiod_line * gpiod_line_find_by_name(const char *name)
                return NULL;
 
        gpiod_foreach_chip(chip_iter, chip) {
+               if (gpiod_chip_iter_iserr(chip_iter))
+                       continue;
+
                gpiod_line_iter_init(&line_iter, chip);
                gpiod_foreach_line(&line_iter, line) {
+                       if (gpiod_line_iter_err(&line_iter))
+                               continue;
+
                        line_name = gpiod_line_name(line);
                        if (!line_name)
                                continue;