On (07/01/14 17:54), Amit Kucheria wrote: > Date: Tue, 1 Jul 2014 17:54:15 +0530 > From: Amit Kucheria <amit.kuche...@linaro.org> > To: Mohammad Merajul Islam Molla <meraj.eni...@gmail.com>, > power...@lists.01.org > Cc: Lists linaro-dev <linaro-dev@lists.linaro.org> > Subject: Re: [Powertop] [PATCH POWERTOP] Fix various resource leaks > > Mohammad, > > This fix should go upstream. cc'ing the powertop list. > > Regards, > Amit > > On Thu, Jun 26, 2014 at 12:42 PM, Mohammad Merajul Islam Molla > <meraj.eni...@gmail.com> wrote: > > Fixes some resource leaks detected by valgrind and coverity scan. > > > > > > diff --git a/src/devices/ahci.cpp b/src/devices/ahci.cpp > > index ac06460..7f704b6 100644 > > --- a/src/devices/ahci.cpp > > +++ b/src/devices/ahci.cpp > > @@ -64,8 +64,10 @@ static string disk_name(char *path, char *target, > > char *shortname) > > sprintf(line, "%s/%s/model", pathname, dirent->d_name); > > file = fopen(line, "r"); > > if (file) { > > - if (fgets(line, 4096, file) == NULL) > > + if (fgets(line, 4096, file) == NULL) { > > + fclose(file); > > break; > > + } > > fclose(file); > > c = strchr(line, '\n'); > > if (c) > > diff --git a/src/devices/devfreq.cpp b/src/devices/devfreq.cpp > > index e16951c..23c4b0c 100644 > > --- a/src/devices/devfreq.cpp > > +++ b/src/devices/devfreq.cpp > > @@ -238,6 +238,7 @@ void create_all_devfreq_devices(void) > > > > callback fn = &devfreq_dev_callback; > > process_directory(p.c_str(), fn); > > + closedir(dir);
I don't see this file at https://github.com/fenrus75/powertop/tree/master/src/devices afair, process_directory() closes dir. -ss > > } > > > > void initialize_devfreq(void) > > diff --git a/src/perf/perf_bundle.cpp b/src/perf/perf_bundle.cpp > > index b0e982b..cf1ae11 100644 > > --- a/src/perf/perf_bundle.cpp > > +++ b/src/perf/perf_bundle.cpp > > @@ -142,8 +142,10 @@ static void parse_event_format(const char *event_name) > > > > buf = read_file(file); > > free(file); > > - if (!buf) > > + if (!buf) { > > + free(name); > > return; > > + } > > > > pevent_parse_event(perf_event::pevent, buf, strlen(buf), sys); > > free(name); > > diff --git a/src/tuning/bluetooth.cpp b/src/tuning/bluetooth.cpp > > index e0bdf12..5100a8a 100644 > > --- a/src/tuning/bluetooth.cpp > > +++ b/src/tuning/bluetooth.cpp > > @@ -144,8 +144,10 @@ int bt_tunable::good_bad(void) > > if (file) { > > char line[2048]; > > /* first line is standard header */ > > - if (fgets(line, 2047, file) == NULL) > > + if (fgets(line, 2047, file) == NULL) { > > + pclose(file); > > goto out; > > + } > > memset(line, 0, 2048); > > if (fgets(line, 2047, file) == NULL) { > > result = last_check_result = TUNE_GOOD; > > > > > > > > -- > > Thanks, > > -Meraj > > > > _______________________________________________ > > linaro-dev mailing list > > linaro-dev@lists.linaro.org > > http://lists.linaro.org/mailman/listinfo/linaro-dev > > > _______________________________________________ > PowerTop mailing list > power...@lists.01.org > https://lists.01.org/mailman/listinfo/powertop > _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev