Re: [PATCH] Fix strim() semantics for strings that have only blanks

From: Michael Holzheu
Date: Fri Oct 14 2011 - 04:47:53 EST


Hello Andrew,

On Thu, 2011-10-13 at 16:54 -0700, Andrew Morton wrote:
> On Wed, 12 Oct 2011 10:31:57 +0200
> > Also strim() explicitly does not have "__must_check", in order to use it
> > without using the return value.
> >
>
> This observation seems to have nothing to do with the patch?

Well, it is just a hint that it was intentionally that the return value
of strim() can be ignored and therefore I legally can use it like I do
it ;-)

> I think that strim() _should_ have __must_check annotation (which means
> that strim() simply disappears, which is good). It is only safe to
> ignore the strim() return value if the caller knows that the string
> started with a non-space. The number of situations where this is
> guaranteed are faily small, I suspect.

Everywhere I use that function I know that my string has only trailing
blanks (or only blanks). Therefore I think we should have a function
that just removes trailing blanks. Perhaps we should change strim() to:

void strim(char *str);

And change the three users that need the return value to use the
strstrip() instead:

grep -r " = strim(" linux-2.6
security/apparmor/lib.c: char *name = strim(fqname);
security/apparmor/lsm.c: args = strim(args);
security/apparmor/policy.c: hname = strim((char *)hname);

Michael

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/