fb7efbf
From 1c6e7a4ab586ebb221002c8881e0b44560d1b09d Mon Sep 17 00:00:00 2001
fb7efbf
From: Daniel Mack <daniel@zonque.org>
fb7efbf
Date: Tue, 28 Jul 2015 13:58:40 +0200
fb7efbf
Subject: [PATCH 23/47] udev: check more builtins[] pointers before
fb7efbf
 dereferencing
fb7efbf
fb7efbf
Fix some more locations where pointers from builtins[] are dereferenced
fb7efbf
before checking. Related to 8cacf69b1.
fb7efbf
---
fb7efbf
 src/udev/udev-builtin.c | 9 +++++++++
fb7efbf
 1 file changed, 9 insertions(+)
fb7efbf
fb7efbf
diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c
fb7efbf
index 88d1acf..3ebefa8 100644
fb7efbf
--- a/src/udev/udev-builtin.c
fb7efbf
+++ b/src/udev/udev-builtin.c
fb7efbf
@@ -89,10 +89,16 @@ void udev_builtin_list(struct udev *udev) {
fb7efbf
 }
fb7efbf
 
fb7efbf
 const char *udev_builtin_name(enum udev_builtin_cmd cmd) {
fb7efbf
+        if (!builtins[cmd])
fb7efbf
+                return NULL;
fb7efbf
+
fb7efbf
         return builtins[cmd]->name;
fb7efbf
 }
fb7efbf
 
fb7efbf
 bool udev_builtin_run_once(enum udev_builtin_cmd cmd) {
fb7efbf
+        if (!builtins[cmd])
fb7efbf
+                return -EOPNOTSUPP;
fb7efbf
+
fb7efbf
         return builtins[cmd]->run_once;
fb7efbf
 }
fb7efbf
 
fb7efbf
@@ -116,6 +122,9 @@ int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const c
fb7efbf
         int argc;
fb7efbf
         char *argv[128];
fb7efbf
 
fb7efbf
+        if (!builtins[cmd])
fb7efbf
+                return -EOPNOTSUPP;
fb7efbf
+
fb7efbf
         /* we need '0' here to reset the internal state */
fb7efbf
         optind = 0;
fb7efbf
         strscpy(arg, sizeof(arg), command);
fb7efbf
-- 
fb7efbf
2.5.0
fb7efbf