From: Jim Fehlig Date: Wed, 17 Feb 2016 17:20:57 +0000 (-0700) Subject: libxlu_cfg: reject unknown characters following '\' X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6b8d2913c4f7080c3bd748fc397e153367a99471;p=people%2Fliuw%2Fxen.git libxlu_cfg: reject unknown characters following '\' 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 Acked-by: Ian Campbell --- diff --git a/tools/libxl/libxlu_cfg.c b/tools/libxl/libxlu_cfg.c index 1d709091cb..5838f6885e 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 {