Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Sep 2012 16:07:51 +0200
From:      Tijl Coosemans <tijl@coosemans.org>
To:        Erik Cederstrand <erik@cederstrand.dk>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r240527 - head/bin/df
Message-ID:  <50588037.6010009@coosemans.org>
In-Reply-To: <950ECA11-BDDF-4805-AB9F-07F233A8429E@cederstrand.dk>
References:  <201209142347.q8ENlN7N034951@svn.freebsd.org> <5054EBCB.6070105@coosemans.org> <5054F116.8090503@cran.org.uk> <CAF6rxgmDckK6RE=UG8dpMDuXk_zPeUTLbC4x74XYK9cJJiYfog@mail.gmail.com> <5055E121.2030208@coosemans.org> <CAF6rxgnFw9Z0AgjNA8yB2ex4TKCCB4k%2BAkFegopoYFgXt7czTQ@mail.gmail.com> <950ECA11-BDDF-4805-AB9F-07F233A8429E@cederstrand.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig009E4C34CAAFB2C1D94D079F
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 16-09-2012 20:57, Erik Cederstrand wrote:
> Den 16/09/2012 kl. 18.05 skrev Eitan Adler <eadler@FreeBSD.org>:
>> On 16 September 2012 10:24, Tijl Coosemans <tijl@coosemans.org> wrote:=

>>> On 16-09-2012 01:27, Eitan Adler wrote:
>>>> On 15 September 2012 17:20, Bruce Cran <bruce@cran.org.uk> wrote:
>>>>> On 15/09/2012 21:57, Tijl Coosemans wrote:
>>>>>> Freeing memory right before exiting is a waste of time. The tool s=
houldn't
>>>>>> complain about it.
>>>>
>>>> Perhaps, but tools do. This has already been brought up on cfe-dev.
>>>
>>> In this case the free is actually wrong, because the pointer can poin=
t
>>> to memory allocated by getmntinfo(3) and that manpage says an applica=
tion
>>> cannot free it.
>>
>> Ah, I missed that.  I wish this point was brought up earlier.  I'll
>> revert the commit
>=20
> I was the one who filed the PR
> (http://www.freebsd.org/cgi/query-pr.cgi?pr=3D171634). I'm embarrassed
> to have caused a wrong commit.
>=20
> The big picture is I'm looking through the Clang Analyzer scans at
> http://scan.freebsd.your.org/freebsd-head trying to find false
> positives to report back to LLVM. Their PR originated in this
> warning:
> http://scan.freebsd.your.org/freebsd-head/bin.df/2012-09-12-amd64/repor=
t-WwB2qk.html#EndPath
> The scan has 326 warnings about possible memory leaks in world, so
> I'd really like to do something here, be it either via bug report
> with LLVM or FreeBSD or to annotate the code to say it's okay to
> break the rules.
>=20
> There response from LLVM (disregarding that mntbuf can't be freed) is
> either that: 1) if main() is redefined as a macro, it's still a leak,

If main is renamed using a macro it isn't main anymore and it's ok to
complain about leaks. A more valid objection would be that main is still
an ordinary function that can be called from other functions, so a
memory leak there is potentially just as problematic as in any other
function. But that's very theoretical. In practice I think not
complaining about leaks in main by default would take out more false
positives than create false negatives.

> and 2) they can skip the warning only if it's feasible to reason that
> prtstat() doesn't allocate memory.

I don't understand why this is a requirement. If there's a call to
exit(3) instead of a return statement the analyzer already doesn't
seem to complain and a return from main() is the same as a call to
exit() in practice.

> I noticed that the sentence "The memory allocated by getmntinfo()
> cannot be free(3)'d by the application." in the getmntinfo(3) manage
> is in the bugs section. Does this mean it's something that should be
> fixed in FreeBSD eventually?

Probably not. The section could be renamed CAVEATS like basename(3).


--------------enig009E4C34CAAFB2C1D94D079F
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iF4EAREIAAYFAlBYgDwACgkQfoCS2CCgtitI5gD/bLujB/9Bq+5V8jV33oqIq2i7
MxTEOA0cgFXj2Tvs7/IA/3bIl9H31NooDVuGKHQ5ycHC53Pe+Y+McHTTTat0GtDb
=XN7/
-----END PGP SIGNATURE-----

--------------enig009E4C34CAAFB2C1D94D079F--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50588037.6010009>