|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xl: tighten parsing of "irq" and "iomem" list elements
commit adef7d9cc8ddc8cf49a0f460976c7de51a4f53f3
Author: Jan Beulich <JBeulich@xxxxxxxx>
AuthorDate: Mon Sep 14 07:53:27 2015 -0600
Commit: Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Tue Sep 15 11:58:26 2015 +0100
xl: tighten parsing of "irq" and "iomem" list elements
While "ioport" list element parsing already validates that the entire
input string got consumed, its two siblings so far didn't.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
tools/libxl/xl_cmdimpl.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index bfbd421..2706759 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -1730,7 +1730,7 @@ static void parse_config_data(const char *config_source,
exit(1);
}
ul = strtoul(buf, &ep, 10);
- if (ep == buf) {
+ if (ep == buf || *ep != '\0') {
fprintf(stderr,
"xl: Invalid argument parsing irq: %s\n", buf);
exit(1);
@@ -1752,6 +1752,8 @@ static void parse_config_data(const char *config_source,
exit(-1);
}
for (i = 0; i < num_iomem; i++) {
+ int used;
+
buf = xlu_cfg_get_listitem (iomem, i);
if (!buf) {
fprintf(stderr,
@@ -1759,11 +1761,11 @@ static void parse_config_data(const char *config_source,
exit(1);
}
libxl_iomem_range_init(&b_info->iomem[i]);
- ret = sscanf(buf, "%" SCNx64",%" SCNx64"@%" SCNx64,
+ ret = sscanf(buf, "%" SCNx64",%" SCNx64"%n@%" SCNx64"%n",
&b_info->iomem[i].start,
- &b_info->iomem[i].number,
- &b_info->iomem[i].gfn);
- if (ret < 2) {
+ &b_info->iomem[i].number, &used,
+ &b_info->iomem[i].gfn, &used);
+ if (ret < 2 || buf[used] != '\0') {
fprintf(stderr,
"xl: Invalid argument parsing iomem: %s\n", buf);
exit(1);
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |