]> git.ipfire.org Git - pakfire.git/commitdiff
cgroups: Fix error codes
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 14 Dec 2024 14:11:58 +0000 (14:11 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 14 Dec 2024 14:19:28 +0000 (14:19 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/cgroup.c

index 6bc1a9615b0bc208418a72481cfd5c082100ac32..9f9dd6e26205b98bb5480fd5d7729e6ee326f20d 100644 (file)
@@ -578,7 +578,7 @@ int pakfire_cgroup_set_guaranteed_memory(struct pakfire_cgroup* cgroup, size_t m
 
        // Set value
        r = pakfire_cgroup_write(cgroup, "memory.min", "%zu\n", mem);
-       if (r)
+       if (r < 0)
                ERROR(cgroup->ctx, "%s: Could not set guaranteed memory: %m\n",
                        pakfire_cgroup_name(cgroup));
 
@@ -598,7 +598,7 @@ int pakfire_cgroup_set_memory_limit(struct pakfire_cgroup* cgroup, size_t mem) {
 
        // Set value
        r = pakfire_cgroup_write(cgroup, "memory.max", "%zu\n", mem);
-       if (r)
+       if (r < 0)
                ERROR(cgroup->ctx, "%s: Could not set memory limit: %m\n",
                        pakfire_cgroup_name(cgroup));
 
@@ -620,7 +620,7 @@ int pakfire_cgroup_set_pid_limit(struct pakfire_cgroup* cgroup, size_t limit) {
 
        // Set value
        r = pakfire_cgroup_write(cgroup, "pids.max", "%zu\n", limit);
-       if (r)
+       if (r < 0)
                ERROR(cgroup->ctx, "%s: Could not set PID limit: %m\n",
                        pakfire_cgroup_name(cgroup));
 
@@ -633,6 +633,7 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup,
                int (*callback)(struct pakfire_cgroup* cgroup, const char* key, unsigned long val, void* data),
                void* data, char* line) {
        char* p = NULL;
+       int r;
 
        char key[NAME_MAX];
        unsigned long val = 0;
@@ -646,7 +647,9 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup,
                        // First field is the key
                        case 0:
                                // Copy the key
-                               pakfire_string_set(key, elem);
+                               r = pakfire_string_set(key, elem);
+                               if (r < 0)
+                                       return r;
                                break;
 
                        // The second field is some value
@@ -667,7 +670,7 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup,
        // Check if we parsed both fields
        if (i < 2) {
                ERROR(cgroup->ctx, "Could not parse line\n");
-               return 1;
+               return -EINVAL;
        }
 
        // Call the callback
@@ -677,11 +680,10 @@ static int __pakfire_cgroup_read_stats_line(struct pakfire_cgroup* cgroup,
 static int __pakfire_cgroup_read_stats(struct pakfire_cgroup* cgroup, const char* path,
                int (*callback)(struct pakfire_cgroup* cgroup, const char* key, unsigned long val, void* data),
                void* data) {
+       char buffer[BUFFER_SIZE];
        char* p = NULL;
        int r;
 
-       char buffer[BUFFER_SIZE];
-
        DEBUG(cgroup->ctx, "%s: Reading stats from %s\n", pakfire_cgroup_name(cgroup), path);
 
        // Open the file
@@ -813,21 +815,19 @@ int pakfire_cgroup_stat(struct pakfire_cgroup* cgroup,
        int r;
 
        // Check input
-       if (!stats) {
-               errno = EINVAL;
-               return 1;
-       }
+       if (!stats)
+               return -EINVAL;
 
        // Read CPU stats
        r = __pakfire_cgroup_read_stats(cgroup, "cpu.stat",
-               __pakfire_cgroup_parse_cpu_stats, &stats->cpu);
-       if (r)
+                       __pakfire_cgroup_parse_cpu_stats, &stats->cpu);
+       if (r < 0)
                goto ERROR;
 
        // Read memory stats
        r = __pakfire_cgroup_read_stats(cgroup, "memory.stat",
-               __pakfire_cgroup_parse_memory_stats, &stats->memory);
-       if (r)
+                       __pakfire_cgroup_parse_memory_stats, &stats->memory);
+       if (r < 0)
                goto ERROR;
 
 ERROR:
@@ -841,10 +841,8 @@ ERROR:
 int pakfire_cgroup_stat_dump(struct pakfire_cgroup* cgroup,
                const struct pakfire_cgroup_stats* stats) {
        // Check input
-       if (!stats) {
-               errno = EINVAL;
-               return 1;
-       }
+       if (!stats)
+               return -EINVAL;
 
        DEBUG(cgroup->ctx, "%s: Total CPU time usage: %lu\n",
                pakfire_cgroup_name(cgroup), stats->cpu.usage_usec);