udev: avoid coredump when initializing udev builtins
If one of the macros(HAVE_BLKID/HAVE_KMOD/HAVE_ACL) is not defined, there will be a coredump
This commit is contained in:
@@ -52,7 +52,7 @@ void udev_builtin_init(struct udev *udev) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
||||||
if (builtins[i]->init)
|
if (builtins[i] && builtins[i]->init)
|
||||||
builtins[i]->init(udev);
|
builtins[i]->init(udev);
|
||||||
|
|
||||||
initialized = true;
|
initialized = true;
|
||||||
@@ -65,7 +65,7 @@ void udev_builtin_exit(struct udev *udev) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
||||||
if (builtins[i]->exit)
|
if (builtins[i] && builtins[i]->exit)
|
||||||
builtins[i]->exit(udev);
|
builtins[i]->exit(udev);
|
||||||
|
|
||||||
initialized = false;
|
initialized = false;
|
||||||
@@ -75,7 +75,7 @@ bool udev_builtin_validate(struct udev *udev) {
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
||||||
if (builtins[i]->validate && builtins[i]->validate(udev))
|
if (builtins[i] && builtins[i]->validate && builtins[i]->validate(udev))
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,8 @@ void udev_builtin_list(struct udev *udev) {
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
||||||
fprintf(stderr, " %-14s %s\n", builtins[i]->name, builtins[i]->help);
|
if (builtins[i])
|
||||||
|
fprintf(stderr, " %-14s %s\n", builtins[i]->name, builtins[i]->help);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *udev_builtin_name(enum udev_builtin_cmd cmd) {
|
const char *udev_builtin_name(enum udev_builtin_cmd cmd) {
|
||||||
@@ -105,7 +106,7 @@ enum udev_builtin_cmd udev_builtin_lookup(const char *command) {
|
|||||||
if (pos)
|
if (pos)
|
||||||
pos[0] = '\0';
|
pos[0] = '\0';
|
||||||
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
||||||
if (streq(builtins[i]->name, name))
|
if (builtins[i] && streq(builtins[i]->name, name))
|
||||||
return i;
|
return i;
|
||||||
return UDEV_BUILTIN_MAX;
|
return UDEV_BUILTIN_MAX;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user