]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sysctl-util: use read_full_virtual_file() for reading sysctls
authorLennart Poettering <lennart@poettering.net>
Fri, 5 Mar 2021 19:34:16 +0000 (20:34 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 5 Mar 2021 19:38:51 +0000 (20:38 +0100)
Given these files are part of procfs, let's use the correct API calls
for reading them.

This changes one occasion of read_one_line_file() to
read_full_virtual_file(), which superficially is a different thing, but
shouldn't actually be a difference, since sysctls can't be longer than
4K anyway, and the piecemeal logic behind read_one_line_file() cannot
work with the special semantics of procfs anyway.

src/shared/sysctl-util.c

index a835a8bd0a74d6b78b722ca7e00fcdf61ce4d771..c96b5cd77f0eddd7be061edd28dafa71646c1dbf 100644 (file)
@@ -96,14 +96,14 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
         return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
 }
 
-int sysctl_read(const char *property, char **content) {
+int sysctl_read(const char *property, char **ret) {
         char *p;
 
         assert(property);
-        assert(content);
+        assert(ret);
 
         p = strjoina("/proc/sys/", property);
-        return read_full_file(p, content, NULL);
+        return read_full_virtual_file(p, ret, NULL);
 }
 
 int sysctl_read_ip_property(int af, const char *ifname, const char *property, char **ret) {
@@ -118,7 +118,7 @@ int sysctl_read_ip_property(int af, const char *ifname, const char *property, ch
                      ifname ? "/conf/" : "", strempty(ifname),
                      property[0] == '/' ? "" : "/", property);
 
-        r = read_one_line_file(p, &value);
+        r = read_full_virtual_file(p, &value, NULL);
         if (r < 0)
                 return r;