From 71daae9671e287bb1947c49b0b07733692bcb60f Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Tue, 12 Jan 2016 11:34:06 -0700 Subject: [PATCH] xenconfig: check return value of regcomp Commit ec63000a missed checking the return value of regcomp(), which coverity promptly identified. --- src/xenconfig/xen_sxpr.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/xenconfig/xen_sxpr.c b/src/xenconfig/xen_sxpr.c index a7a622f789..cd6f2079d9 100644 --- a/src/xenconfig/xen_sxpr.c +++ b/src/xenconfig/xen_sxpr.c @@ -325,6 +325,7 @@ xenParseSxprVifRate(const char *rate, unsigned long long *kbytes_per_sec) char *trate = NULL; char *p; regex_t rec; + int err; char *suffix; unsigned long long tmp; int ret = -1; @@ -336,7 +337,16 @@ xenParseSxprVifRate(const char *rate, unsigned long long *kbytes_per_sec) if (p != NULL) *p = 0; - regcomp(&rec, vif_bytes_per_sec_re, REG_EXTENDED|REG_NOSUB); + err = regcomp(&rec, vif_bytes_per_sec_re, REG_EXTENDED|REG_NOSUB); + if (err != 0) { + char error[100]; + regerror(err, &rec, error, sizeof(error)); + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Failed to compile regular expression '%s': %s"), + vif_bytes_per_sec_re, error); + goto cleanup; + } + if (regexec(&rec, trate, 0, NULL, 0)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Invalid rate '%s' specified"), rate); -- GitLab