All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Liu <wei.liu2@citrix.com>
To: Zhigang Wang <zhigang.x.wang@oracle.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wei.liu2@citrix.com>,
	Ian Jackson <ian.jackson@eu.citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH] tools/xenstat: handle network interface name in uppercase.
Date: Wed, 20 Apr 2016 12:39:10 +0100	[thread overview]
Message-ID: <20160420113910.GA4311@citrix.com> (raw)
In-Reply-To: <1457727481-21859-1-git-send-email-zhigang.x.wang@oracle.com>

I wasn't CC'ed so this fled my attention.

On Fri, Mar 11, 2016 at 03:18:01PM -0500, Zhigang Wang wrote:
> xentop will segmentation fault in this case:
> 
>   # ip link set eth1 down
>   # ip link set eth1 name ETH
>   # xentop
> 
> This patch will let xentop to handle all uppercase network interface name.
> 
> Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
> ---
>  tools/xenstat/libxenstat/src/xenstat_linux.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/xenstat/libxenstat/src/xenstat_linux.c b/tools/xenstat/libxenstat/src/xenstat_linux.c
> index 931b24e..d33eca1 100644
> --- a/tools/xenstat/libxenstat/src/xenstat_linux.c
> +++ b/tools/xenstat/libxenstat/src/xenstat_linux.c
> @@ -101,6 +101,7 @@ int parseNetDevLine(char *line, char *iface, unsigned long long *rxBytes, unsign
>  	/* Temporary/helper variables */
>  	int ret;
>  	char *tmp;
> +	char *tmp2;
>  	int i = 0, x = 0, col = 0;
>  	regex_t r;
>  	regmatch_t matches[19];
> @@ -221,8 +222,11 @@ int parseNetDevLine(char *line, char *iface, unsigned long long *rxBytes, unsign
>  				}
>  				else
>  				/* There were errors when parsing this directly in RE. strpbrk() helps */

This line indicates the most proper fix is to fix the regexp used to
also parse netdev name IMHO. That being said, there is no reason to
block a valid fix.

> -				if (iface != NULL)
> -					strcpy(iface, strpbrk(tmp, "abcdefghijklmnopqrstvuwxyz0123456789"));
> +				if (iface != NULL) {
> +					tmp2 = strpbrk(tmp, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
> +					if (tmp2 != NULL)
> +						strcpy(iface, tmp2);
> +				}

Please limit the scope of tmp2, if you only need that here, declare it
within this narrow scope please.


Wei.

>  
>  				memset(tmp, 0, matches[i].rm_eo - matches[i].rm_so);
>  			}
> -- 
> 2.5.0
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  parent reply	other threads:[~2016-04-20 11:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-11 20:18 [PATCH] tools/xenstat: handle network interface name in uppercase Zhigang Wang
2016-04-19 21:03 ` Zhigang Wang
2016-04-20 11:39 ` Wei Liu [this message]
2016-04-20 14:16   ` Zhigang Wang
2016-04-20 15:12     ` Wei Liu
2016-04-20 18:07       ` Wei Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160420113910.GA4311@citrix.com \
    --to=wei.liu2@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    --cc=zhigang.x.wang@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.