[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/8] block: fix unbounded stack for dump_qdict
From: |
Peter Xu |
Subject: |
Re: [Qemu-devel] [PATCH 2/8] block: fix unbounded stack for dump_qdict |
Date: |
Wed, 9 Mar 2016 11:18:44 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Tue, Mar 08, 2016 at 01:17:03PM +0100, Paolo Bonzini wrote:
>
>
> On 08/03/2016 09:12, Markus Armbruster wrote:
> > I'm afraid this isn't a good idea. It relies on the non-local argument
> > that nobody will ever put a key longer than 255 into a qdict that gets
> > dumped. That may even be the case, but you need to *prove* it, not just
> > assert it. The weakest acceptable proof might be assertions in every
> > place that put keys into a dict that might get dumped. I suspect that's
> > practical and maintainable only if there's a single place that does it.
> >
> > If this was a good idea, I'd recommend to avoid the awkward macro:
> >
> > char key[256];
> > int i;
> >
> > assert(strlen(entry->key) + 1 <= ARRAY_SIZE(key));
> >
> > There are several other ways to limit the stack usage:
> >
> > 1. Move the array from stack to heap. Fine unless it's on a hot path.
> > As far as I can tell, this dumping business is for HMP and qemu-io,
> > i.e. not hot.
>
> I think this is the best. You can just g_strdup, modify in place, print
> and free.
g_strdup() will bring one more loop? One to copy the strings, one
for replacing "-" to " ". Though I will first need to replace
g_malloc0() with g_malloc(), which seems more suitable here. :)
Thanks!
Peter
- Re: [Qemu-devel] [PATCH 1/8] qdict: fix unbounded stack for qdict_array_entries, (continued)
[Qemu-devel] [PATCH 2/8] block: fix unbounded stack for dump_qdict, Peter Xu, 2016/03/08
Re: [Qemu-devel] [PATCH 2/8] block: fix unbounded stack for dump_qdict, Peter Xu, 2016/03/08
Re: [Qemu-devel] [PATCH 2/8] block: fix unbounded stack for dump_qdict, Markus Armbruster, 2016/03/08
Re: [Qemu-devel] [PATCH 2/8] block: fix unbounded stack for dump_qdict, Paolo Bonzini, 2016/03/08
Re: [Qemu-devel] [PATCH 2/8] block: fix unbounded stack for dump_qdict,
Peter Xu <=
[Qemu-devel] [PATCH 3/8] usb: fix unbounded stack for ohci_td_pkt, Peter Xu, 2016/03/08
[Qemu-devel] [PATCH 4/8] usb: fix unbounded stack for xhci_dma_write_u32s, Peter Xu, 2016/03/08