Re: [PATCH 8/8] tools, perf: Add asprintf replacement

From: Jiri Olsa
Date: Mon Oct 20 2014 - 15:22:16 EST


On Mon, Oct 20, 2014 at 09:13:58PM +0200, Geert Uytterhoeven wrote:
> On Mon, Oct 20, 2014 at 8:28 PM, Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> >> +int vasprintf(char **str, const char *fmt, va_list ap)
> >> +{
> >> + char buf[1024];
> >
> > could you please make it work for generic buf len?
>
> The actual size above doesn't matter, except for stack usage.
> It could be 1 (are there any bugs triggered when using zero? ;-).
> The real buffer is allocated by malloc() below.
>
> >> + int len = vsnprintf(buf, sizeof buf, fmt, ap);

hum, really? the message is formated in here ^^^
into buffer on stack 'buf[1024]'

> >
> > WARNING: sizeof buf should be sizeof(buf)
> >
> >> +
> >> + *str = malloc(len + 1);
> >> + if (!*str)
> >> + return -1;
> >> + strcpy(*str, buf);

and copied into allocated buffer in here

the buf size 1024 limits the maximum formated string length to 1024,
which is probably not crossed by current perf usage.. but still making
it generic is not that hard

jirka

> >> + return len;
> >> +}
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
--
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/