Message ID | 1455729659-7885-2-git-send-email-jfehlig@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Feb 17, 2016 at 10:20:57AM -0700, Jim Fehlig wrote: > When dequoting config strings in xlu__cfgl_dequote(), unknown > characters following a '\', and the '\' itself, are discarded. > E.g. a disk configuration string containing > > rbd:pool/image:mon_host=192.168.0.100\:6789 > > would be dequoted as > > rbd:pool/image:mon_host=192.168.0.1006789 > > Instead of discarding the '\' and unknown character, reject the > string and set error to EINVAL. > > Signed-off-by: Jim Fehlig <jfehlig@suse.com> > Acked-by: Ian Campbell <ian.campbell@citrix.com> applied > --- > tools/libxl/libxlu_cfg.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/tools/libxl/libxlu_cfg.c b/tools/libxl/libxlu_cfg.c > index 1d70909..5838f68 100644 > --- a/tools/libxl/libxlu_cfg.c > +++ b/tools/libxl/libxlu_cfg.c > @@ -533,6 +533,11 @@ char *xlu__cfgl_dequote(CfgParseContext *ctx, const char *src) { > NUMERIC_CHAR(2,2,16,"hex"); > } else if (nc>='0' && nc<='7') { > NUMERIC_CHAR(1,3,10,"octal"); > + } else { > + xlu__cfgl_lexicalerror(ctx, > + "invalid character after backlash in quoted string"); > + ctx->err= EINVAL; > + goto x; > } > assert(p <= src+len-1); > } else { > -- > 2.1.4 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
diff --git a/tools/libxl/libxlu_cfg.c b/tools/libxl/libxlu_cfg.c index 1d70909..5838f68 100644 --- a/tools/libxl/libxlu_cfg.c +++ b/tools/libxl/libxlu_cfg.c @@ -533,6 +533,11 @@ char *xlu__cfgl_dequote(CfgParseContext *ctx, const char *src) { NUMERIC_CHAR(2,2,16,"hex"); } else if (nc>='0' && nc<='7') { NUMERIC_CHAR(1,3,10,"octal"); + } else { + xlu__cfgl_lexicalerror(ctx, + "invalid character after backlash in quoted string"); + ctx->err= EINVAL; + goto x; } assert(p <= src+len-1); } else {