]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tools/power/x86/intel-speed-select: Fix file descriptor leak in isolate_cpus()
authorMalaya Kumar Rout <mrout@redhat.com>
Thu, 15 Jan 2026 10:03:33 +0000 (15:33 +0530)
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Sat, 17 Jan 2026 00:03:21 +0000 (16:03 -0800)
The file descriptor opened in isolate_cpus() when (!level) is true was
not being closed before returning, causing a file descriptor leak in
both the error path and the success path.

When write() fails at line 950, the function returns at line 953 without
closing the file descriptor. Similarly, on success, the function returns
at line 956 without closing the file descriptor.

Add close(fd) calls before both return statements to fix the resource
leak. This follows the same pattern used elsewhere in the same function
where file descriptors are properly closed before returning (see lines
1005 and 1027).

Fixes: 997074df658e ("tools/power/x86/intel-speed-select: Use cgroup v2 isolation")
Signed-off-by: Malaya Kumar Rout <mrout@redhat.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
tools/power/x86/intel-speed-select/isst-config.c

index 807feb17bb8173ffad5b74137eac0e7af3d6b1c4..68c9955dd7f48bd9ba2b58dfe63e4ab080e3835b 100644 (file)
@@ -962,9 +962,11 @@ int isolate_cpus(struct isst_id *id, int mask_size, cpu_set_t *cpu_mask, int lev
                ret = write(fd, "member", strlen("member"));
                if (ret == -1) {
                        printf("Can't update to member\n");
+                       close(fd);
                        return ret;
                }
 
+               close(fd);
                return 0;
        }