Message ID | 20241128060512.3948-1-liujing@cmss.chinamobile.com |
---|---|
State | New |
Headers | show |
Series | selftests/timens: Add fclose(proc) to prevent memory leaks | expand |
On 11/27/24 23:05, liujing wrote: > If fopen succeeds, the fscanf function is called to read the data. > Regardless of whether fscanf is successful, you need to run > fclose(proc) to prevent memory leaks. > > Signed-off-by: liujing <liujing@cmss.chinamobile.com> > > diff --git a/tools/testing/selftests/timens/procfs.c b/tools/testing/selftests/timens/procfs.c > index 1833ca97eb24..e47844a73c31 100644 > --- a/tools/testing/selftests/timens/procfs.c > +++ b/tools/testing/selftests/timens/procfs.c > @@ -79,9 +79,11 @@ static int read_proc_uptime(struct timespec *uptime) > if (fscanf(proc, "%lu.%02lu", &up_sec, &up_nsec) != 2) { > if (errno) { > pr_perror("fscanf"); > + fclose(proc); > return -errno; > } > pr_err("failed to parse /proc/uptime"); > + fclose(proc); > return -1; > } > fclose(proc); How did you find this problem? This file will be closed when test exits? What does strace show you? thanks, -- Shuah
diff --git a/tools/testing/selftests/timens/procfs.c b/tools/testing/selftests/timens/procfs.c index 1833ca97eb24..e47844a73c31 100644 --- a/tools/testing/selftests/timens/procfs.c +++ b/tools/testing/selftests/timens/procfs.c @@ -79,9 +79,11 @@ static int read_proc_uptime(struct timespec *uptime) if (fscanf(proc, "%lu.%02lu", &up_sec, &up_nsec) != 2) { if (errno) { pr_perror("fscanf"); + fclose(proc); return -errno; } pr_err("failed to parse /proc/uptime"); + fclose(proc); return -1; } fclose(proc);
If fopen succeeds, the fscanf function is called to read the data. Regardless of whether fscanf is successful, you need to run fclose(proc) to prevent memory leaks. Signed-off-by: liujing <liujing@cmss.chinamobile.com>