diff --git a/lib/config/config.c b/lib/config/config.c index aedbb2b1e..0cb0da121 100644 --- a/lib/config/config.c +++ b/lib/config/config.c @@ -932,7 +932,7 @@ static int _check_value_differs_from_default(struct cft_check_handle *handle, } else { str = v_def ? v_def->v.str : cfg_def_get_default_value(handle->cmd, def, CFG_TYPE_STRING, NULL); - diff = strcmp(str, v->v.str); + diff = str ? strcmp(str, v->v.str) : 0; } break; case DM_CFG_EMPTY_ARRAY: diff --git a/libdm/dm-tools/dmsetup.c b/libdm/dm-tools/dmsetup.c index f431f7509..f6d1ecf90 100644 --- a/libdm/dm-tools/dmsetup.c +++ b/libdm/dm-tools/dmsetup.c @@ -6426,9 +6426,10 @@ static const struct command *_find_command(const struct command *commands, { int i; - for (i = 0; commands[i].name; i++) - if (!strcmp(commands[i].name, name)) - return commands + i; + if (name) + for (i = 0; commands[i].name; i++) + if (!strcmp(commands[i].name, name)) + return commands + i; return NULL; } diff --git a/test/unit/run.c b/test/unit/run.c index 206857159..281991c51 100644 --- a/test/unit/run.c +++ b/test/unit/run.c @@ -240,7 +240,7 @@ static unsigned _filter(const char *pattern, struct test_details **tests, unsign } for (i = 0; i < nr; i++) - if (!regexec(&rx, tests[i]->path, 0, NULL, 0)) + if (tests[i] && !regexec(&rx, tests[i]->path, 0, NULL, 0)) tests[found++] = tests[i]; regfree(&rx); diff --git a/tools/command.c b/tools/command.c index 48f572f7e..18ffd64ed 100644 --- a/tools/command.c +++ b/tools/command.c @@ -4015,9 +4015,9 @@ int main(int argc, char *argv[]) factor_common_options(); - if (primary) + if (primary && cmdname) r = _print_man(cmdname, desfile, secondary); - else if (secondary) { + else if (secondary && cmdname) { r = 1; _print_man_secondary(cmdname); } else if (check) {