On Tue, Mar 31, 2009 at 11:18:27AM +0900, Ken'ichi Ohmichi wrote:
> 
> Hi,
> 
> Ken'ichi Ohmichi wrote:
> > I reviewed the libcgroup code in the viewpoint of memory-leak and
> > found some lacks of fclose(). This patch adds some fclose() calls
> > for error handling.
> > 
> > 
> > Thanks
> > Ken'ichi Ohmichi
> > 
> > Signed-off-by: Ken'ichi Ohmichi <[email protected]>
> > ---
> > diff -rpuN a/api.c b/api.c
> > --- a/api.c 2009-03-30 13:48:16.000000000 +0900
> > +++ b/api.c 2009-03-30 13:47:54.000000000 +0900
> > @@ -693,14 +693,16 @@ static int cg_test_mounted_fs()
> >     temp_ent = (struct mntent *) malloc(sizeof(struct mntent));
> >     if (!temp_ent) {
> >             /* We just fail at the moment. */
> > +           fclose(proc_mount);
> >             return 0;
> >     }
> >  
> >     ent = getmntent_r(proc_mount, temp_ent, mntent_buff,
> >                                             sizeof(mntent_buff));
> > -
> > -   if (!ent)
> > -           return 0;
> > +   if (!ent) {
> > +           ret = 0;
> > +           goto done;
> > +   }
> >  
> >     while (strcmp(ent->mnt_type, "cgroup") !=0) {
> >             ent = getmntent_r(proc_mount, temp_ent, mntent_buff,
> > diff -rpuN a/cgclassify.c b/cgclassify.c
> > --- a/cgclassify.c  2009-03-30 13:48:16.000000000 +0900
> > +++ b/cgclassify.c  2009-03-30 13:47:54.000000000 +0900
> > @@ -57,9 +57,11 @@ int euid_of_pid(pid_t pid)
> >                             (int *)&euid, (int *)&suid, (int *)&fsuid);
> >                     cgroup_dbg("Scanned proc values are %d %d %d %d\n",
> >                             ruid, euid, suid, fsuid);
> > +                   fclose(fp);
> >                     return euid;
> >             }
> >     }
> > +   fclose(fp);
> >  
> >     /* If we are here, we could not find euid. Return error. */
> >     return -1;
> > diff -rpuN a/config.c b/config.c
> > --- a/config.c      2009-03-30 13:48:16.000000000 +0900
> > +++ b/config.c      2009-03-30 13:47:54.000000000 +0900
> > @@ -469,6 +469,7 @@ int cgroup_config_load_config(const char
> >  
> >     if (yyparse() != 0) {
> >             cgroup_dbg("Failed to parse file %s\n", pathname);
> > +           fclose(yyin);
> >             return ECGROUPPARSEFAIL;
> >     }
> >  
> > 
> 
> The above patch was based on old libcgroup code, and I created a new
> patch based on the latest libcgroup which is taken from git tree.
> 

Thanks, applied!
-- 
regards,
Dhaval

------------------------------------------------------------------------------
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to