diff options
-rw-r--r-- | src/util/virlog.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/util/virlog.c b/src/util/virlog.c index f6d0c6c050..285c130d36 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -1308,7 +1308,6 @@ virLogFilterNew(const char *match, virLogPriority priority) { virLogFilterPtr ret = NULL; - char *mdup = NULL; size_t mlen = strlen(match); if (priority < VIR_LOG_DEBUG || priority > VIR_LOG_ERROR) { @@ -1317,23 +1316,16 @@ virLogFilterNew(const char *match, return NULL; } + ret = g_new0(virLogFilter, 1); + ret->priority = priority; + /* We must treat 'foo' as equiv to '*foo*' for g_pattern_match * todo substring matches, so add 2 extra bytes */ - if (VIR_ALLOC_N_QUIET(mdup, mlen + 3) < 0) - return NULL; - - mdup[0] = '*'; - memcpy(mdup + 1, match, mlen); - mdup[mlen + 1] = '*'; - - if (VIR_ALLOC_QUIET(ret) < 0) { - VIR_FREE(mdup); - return NULL; - } - - ret->match = mdup; - ret->priority = priority; + ret->match = g_new0(char, mlen + 3); + ret->match[0] = '*'; + memcpy(ret->match + 1, match, mlen); + ret->match[mlen + 1] = '*'; return ret; } |