mirror of
https://github.com/systemd/systemd
synced 2024-10-15 04:24:19 +00:00
busctl: don't hit an assert if we call invalid bus method names
We should validate this explicitly and generate a clear error string, rather then hit an assert() later in the code.
This commit is contained in:
parent
9c046d93fe
commit
5f76155e65
|
@ -2021,6 +2021,15 @@ static int call(int argc, char **argv, void *userdata) {
|
|||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (!service_name_is_valid(argv[1]))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid service name: %s", argv[1]);
|
||||
if (!object_path_is_valid(argv[2]))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid object path: %s", argv[2]);
|
||||
if (!interface_name_is_valid(argv[3]))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid interface name: %s", argv[3]);
|
||||
if (!member_name_is_valid(argv[4]))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid member name: %s", argv[4]);
|
||||
|
||||
r = sd_bus_message_new_method_call(bus, &m, argv[1], argv[2], argv[3], argv[4]);
|
||||
if (r < 0)
|
||||
return bus_log_create_error(r);
|
||||
|
|
Loading…
Reference in a new issue