[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH] net: introduce monitor command to query mac
From: |
Amos Kong |
Subject: |
Re: [Qemu-devel] [RFC PATCH] net: introduce monitor command to query mactables |
Date: |
Thu, 18 Apr 2013 10:51:14 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Hi Stefan,
On Tue, Apr 16, 2013 at 10:11:50AM +0200, Stefan Hajnoczi wrote:
> On Thu, Apr 11, 2013 at 11:11:58PM +0800, Amos Kong wrote:
> > +static MacTableInfo *virtio_net_query_mactable(NetClientState *nc)
> > +{
....
> > + for (i = 0; i < n->mac_table.first_multi; i++) {
> > + info->has_unicast = true;
> > + entry = g_malloc0(sizeof(*entry));
> > + sprintf(str,
> > + "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",
> > + n->mac_table.macs[i * ETH_ALEN],
> > + n->mac_table.macs[i * ETH_ALEN + 1],
> > + n->mac_table.macs[i * ETH_ALEN + 2],
> > + n->mac_table.macs[i * ETH_ALEN + 3],
> > + n->mac_table.macs[i * ETH_ALEN + 4],
> > + n->mac_table.macs[i * ETH_ALEN + 5]);
>
> Buffer overflow, char str[12], but luckily...
>
> > + entry->value = g_malloc0(sizeof(String *));
> > + entry->value->str = g_strdup(str);
>
> ...these lines can be replaced with g_strdup_printf():
> https://developer.gnome.org/glib/2.28/glib-String-Utility-Functions.html#g-strdup-printf
Fixed, thanks.
> > diff --git a/net/net.c b/net/net.c
> > index 7869161..2103e7f 100644
> > --- a/net/net.c
> > +++ b/net/net.c
> > @@ -964,6 +964,29 @@ void print_net_client(Monitor *mon, NetClientState *nc)
> > nc->info_str);
....
> Please add an optional net client name argument so the user can query
> just a single NIC. This saves users from having to parse out a specific
> NIC when they just want to query one.
The reason why I didn't add argument is:
All current info/query commands don't have arguments, Is there a
special reason?
(info network, info qtree, etc) output info of all devices.
But we have interface to support this (.args_type), I will add the
useful argument for info/query mac-table.
--
Amos.