keytable: fix segfault when RC driver's module_name is null
authorCédric Schieli <cschieli@gmail.com>
Sat, 28 May 2011 09:35:16 +0000 (09:35 +0000)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 1 Jun 2011 16:20:05 +0000 (13:20 -0300)
Some dvb-usb drivers do not set a proper module_name in their rc.core struct
(e.g. the ttusb2 module and various dib0700 submodules as of 2.6.39).
Auto-load mode was segfaulting if trying to match those drivers with a * value.

Signed-off-by: Cédric Schieli <cschieli@gmail.com>
utils/keytable/keytable.c

index c406a18..13df13b 100644 (file)
@@ -1427,9 +1427,9 @@ int main(int argc, char *argv[])
                int rc;
 
                for (cur = &cfg; cur->next; cur = cur->next) {
-                       if (strcasecmp(cur->driver, rc_dev.drv_name) && strcasecmp(cur->driver, "*"))
+                       if ((!rc_dev.drv_name || strcasecmp(cur->driver, rc_dev.drv_name)) && strcasecmp(cur->driver, "*"))
                                continue;
-                       if (strcasecmp(cur->table, rc_dev.keytable_name) && strcasecmp(cur->table, "*"))
+                       if ((!rc_dev.keytable_name || strcasecmp(cur->table, rc_dev.keytable_name)) && strcasecmp(cur->table, "*"))
                                continue;
                        break;
                }