We didn't check the number of arguments first, hence ended up outputting
some ugly complaints with `(null)` in a format string. And what's worse
accepted any number of arguments, where we'd ignore all but the first
two though.
assert_not_reached();
}
- arg_command = argv[optind++];
- if (!arg_command)
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
- "Command missing.");
-
- arg_syspath = argv[optind++];
- if (!arg_syspath)
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
- "device is missing.");
+ if (argc != optind + 2)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Expected two arguments: command string and device path.");
+ arg_command = ASSERT_PTR(argv[optind]);
+ arg_syspath = ASSERT_PTR(argv[optind+1]);
return 1;
}