From 25c49db506271b3cef42df4ff010c08c4ec1ed18 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A1n=20Tomko?= Date: Thu, 20 Mar 2014 13:14:11 +0100 Subject: [PATCH] Use VIR_STRNDUP instead of modifying the matched string --- src/util/vircommand.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/util/vircommand.c b/src/util/vircommand.c index acf63b320e..0795935d99 100644 --- a/src/util/vircommand.c +++ b/src/util/vircommand.c @@ -2832,7 +2832,7 @@ virCommandRunRegex(virCommandPtr cmd, goto cleanup; for (k = 0; lines[k]; k++) { - char *p = NULL; + const char *p = NULL; /* ignore any command prefix */ if (prefix) @@ -2845,11 +2845,10 @@ virCommandRunRegex(virCommandPtr cmd, if (regexec(®[i], p, nvars[i]+1, vars, 0) != 0) break; - /* NULL terminate each captured group in the line */ for (j = 0; j < nvars[i]; j++) { /* NB vars[0] is the full pattern, so we offset j by 1 */ - p[vars[j+1].rm_eo] = '\0'; - if (VIR_STRDUP(groups[ngroup++], p + vars[j+1].rm_so) < 0) + if (VIR_STRNDUP(groups[ngroup++], p + vars[j+1].rm_so, + vars[j+1].rm_eo - vars[j+1].rm_so) < 0) goto cleanup; } -- 2.39.5