[PATCH] libctf: Pass format argument to asprintf
H.J. Lu
hjl.tools@gmail.com
Mon Nov 23 18:35:07 GMT 2020
On Mon, Nov 23, 2020 at 10:32 AM Nick Alcock <nick.alcock@oracle.com> wrote:
>
> On 23 Nov 2020, H. J. Lu said:
>
> > PR libctf/26934
> > * ctf-dump.c (ctf_dump_objts): Pass format argument to asprintf.
> > ---
> > libctf/ctf-dump.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c
> > index ccf4b3cb2b..5c3041f8e5 100644
> > --- a/libctf/ctf-dump.c
> > +++ b/libctf/ctf-dump.c
> > @@ -403,7 +403,7 @@ ctf_dump_objts (ctf_dict_t *fp, ctf_dump_state_t *state, int functions)
> > goto out;
> > }
> >
> > - if (asprintf (&typestr, ctf_errmsg (ctf_errno (fp))) < 0)
> > + if (asprintf (&typestr, "%s", ctf_errmsg (ctf_errno (fp))) < 0)
> > goto oom;
> >
> > err = -1;
>
> Thanks! (Now why did none of my runs spot this?)
I added -Wformat -Werror=format-security to CFLAGS by hand to build binutils.
> The intent of this stuff is to differentiate between a type we can't
> represent, which is not actually an error and gets something like
>
> foo_t -> (type not represented in CTF)
>
> -- which hopefully makes it kind of clear that a nonrepresentable type
> is not actually an error of any sort -- versus an outright error, which
> should just print the error message because it's not related to the type
> at all.
>
> ... but we should probably indicate in some fashion clearer than just a
> lack of brackets that this is an error.
>
> Do you mind if we do
>
> > + if (asprintf (&typestr, _("Error: %s"), ctf_errmsg (ctf_errno (fp))) < 0)
>
> instead?
Works for me.
Thanks.
--
H.J.
More information about the Binutils
mailing list