1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-13 00:58:27 +03:00

sysctl-util: modernize sysctl_read() a bit

Let's add similar path validation to sysctl_read() as we already have in
sysctl_write().

Let's also drop the trailing newline from the returned string, like
sysctl_read_ip_property() already does it.

(I checked all users of this, they don't care)
This commit is contained in:
Lennart Poettering 2021-09-15 09:20:49 +02:00
parent 6aebfec3a5
commit f9755203b9

View File

@ -98,12 +98,23 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
int sysctl_read(const char *property, char **ret) {
char *p;
int r;
assert(property);
assert(ret);
p = strjoina("/proc/sys/", property);
return read_full_virtual_file(p, ret, NULL);
path_simplify(p);
if (!path_is_normalized(p)) /* Filter out attempts to write to /proc/sys/../../…, just in case */
return -EINVAL;
r = read_full_virtual_file(p, ret, NULL);
if (r < 0)
return r;
if (ret)
delete_trailing_chars(*ret, NEWLINE);
return r;
}
int sysctl_read_ip_property(int af, const char *ifname, const char *property, char **ret) {