Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:GA
xen.31951
64d33a57-libxenstat-Linux-nul-terminate-string....
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 64d33a57-libxenstat-Linux-nul-terminate-string.patch of Package xen.31951
References: bsc#1212684 # Commit 82f7f7be462ddb435c60aef86960252240bf03c7 # Date 2023-08-09 09:03:51 +0200 # Author Jan Beulich <jbeulich@suse.com> # Committer Jan Beulich <jbeulich@suse.com> libxenstat/Linux: pass nul-terminated string to strpbrk() While what "tmp" points to has been cleared at the end of the first iteration of parseNetDevLine()'s main loop, this is too late for the first iteration's invocation of strpbrk() (copying the interface name). Properly nul-terminate the string at population time instead, removing the late clearing. While there also eliminate a confusing (because of being wrong) comment: A regex parsing error would be handled one further scope outwards. Here we're dealing with field 1 vs any of the later fields. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Juergen Gross <jgross@suse.com> Acked-by: Anthony PERARD <anthony.perard@citrix.com> --- a/tools/libs/stat/xenstat_linux.c +++ b/tools/libs/stat/xenstat_linux.c @@ -169,6 +169,7 @@ static int parseNetDevLine(char *line, c matches[i].rm_so + 1) * sizeof(char)); for (x = matches[i].rm_so; x < matches[i].rm_eo; x++) tmp[x - matches[i].rm_so] = line[x]; + tmp[x - matches[i].rm_so] = 0; /* We populate all the fields from /proc/net/dev line */ if (i > 1) { @@ -225,15 +226,11 @@ static int parseNetDevLine(char *line, c break; } } - else - /* There were errors when parsing this directly in RE. strpbrk() helps */ - if (iface != NULL) { + else if (iface != NULL) { char *tmp2 = strpbrk(tmp, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); if (tmp2 != NULL) strcpy(iface, tmp2); } - - memset(tmp, 0, matches[i].rm_eo - matches[i].rm_so); } } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor