<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font color="#000000" face="Calibri,sans-serif">I opened a PR on your behalf: <a href="https://github.com/mono/mono/pull/1434">https://github.com/mono/mono/pull/1434</a> <br id="FontBreak"></font><BR>-- Alex<br> <BR><div>> Date: Tue, 2 Dec 2014 13:02:54 +0100<br>> From: markus.beth@zkrd.de<br>> To: alex.koeplinger@outlook.com<br>> CC: mono-devel-list@lists.ximian.com<br>> Subject: Re: [Mono-dev] file handle leak in cpu_load<br>> <br>> Not easily, as I do not have an account on GitHub.<br>> <br>> Am Tue, 2 Dec 2014 12:12:04 +0100<br>> schrieb Alexander Köplinger <alex.koeplinger@outlook.com>:<br>> <br>> > Can you send a pull request on GitHub? <br>> >  <br>> > > Date: Tue, 2 Dec 2014 12:01:29 +0100<br>> > > From: markus.beth@zkrd.de<br>> > > To: mono-devel-list@lists.ximian.com<br>> > > Subject: [Mono-dev] file handle leak in cpu_load<br>> > > <br>> > > Hi all,<br>> > > <br>> > > last week we used the profiler of a mono 3.10.0 installation on <br>> > > Linux x86_64 and we found it leaks file handles (for /proc/loadavg).<br>> > > <br>> > > I located the problem in the function cpu_load in <br>> > > mono/utils/mono-counters.c. If a premature return is taken, the<br>> > > FILE pointer f is not fclose()-ed.<br>> > > <br>> > > I propose the following fix:<br>> > > <br>> > > ---<br>> > >   mono/utils/mono-counters.c | 2 +-<br>> > >   1 file changed, 1 insertion(+), 1 deletion(-)<br>> > > <br>> > > diff --git a/mono/utils/mono-counters.c b/mono/utils/mono-counters.c<br>> > > index 1e0840c..c669454 100644<br>> > > --- a/mono/utils/mono-counters.c<br>> > > +++ b/mono/utils/mono-counters.c<br>> > > @@ -360,6 +360,7 @@ cpu_load (int kind)<br>> > >          FILE *f = fopen ("/proc/loadavg", "r");<br>> > >          if (f) {<br>> > >                  len = fread (buffer, 1, sizeof (buffer) - 1, f);<br>> > > +               fclose (f);<br>> > >                  if (len > 0) {<br>> > >                          buffer [len < 511 ? len : 511] = 0;<br>> > >                          b = buffer;<br>> > > @@ -374,7 +375,6 @@ cpu_load (int kind)<br>> > >                                  }<br>> > >                          }<br>> > >                  }<br>> > > -               fclose (f);<br>> > >          }<br>> > >   #endif<br>> > >          return 0;<br>> > > -- <br>> > > <br>> > > It applies on master and also (with an offset of -32 lines) on <br>> > > mono-3.10.0-branch.<br>> > > <br>> > > What do you think?<br>> > > <br>> > > Regards,<br>> > > Markus<br>> > > _______________________________________________<br>> > > Mono-devel-list mailing list<br>> > > Mono-devel-list@lists.ximian.com<br>> > > http://lists.ximian.com/mailman/listinfo/mono-devel-list<br>> >                                         <br>> <br>> <br>> -- <br>> Markus Beth                   ZKRD<br>> Software Developer            Zentrales Knochenmarkspender-Register<br>> Fon: +49 731 1507-421         fuer die Bundesrepublik Deutschland<br>> Fax: +49 731 1507-502         Gemeinnuetzige Gesellschaft mbH<br>> http://www.zkrd.de/           Helmholtzstraße 10, 89081 Ulm, Germany<br>> ---------------------------------------------------------------------<br>> Registergericht: Amtsgericht Ulm, HRB 2566, UID-Nr.: DE269639005<br>> Geschäftsführer: Dr. Peter Mein und Dr. Dr. Carlheinz Müller<br></div>                                          </div></body>
</html>