diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c index e182d0c5ba3391fb5ec7778d7710f50baf938d15..c476c951ac401cf4c002e398c77487d1559ba723 100644 --- a/tools/virt-host-validate-common.c +++ b/tools/virt-host-validate-common.c @@ -194,13 +194,13 @@ int virHostValidateNamespace(const char *hvname, virBitmapPtr virHostValidateGetCPUFlags(void) { FILE *fp; - virBitmapPtr flags; + virBitmapPtr flags = NULL; if (!(fp = fopen("/proc/cpuinfo", "r"))) return NULL; if (!(flags = virBitmapNewQuiet(VIR_HOST_VALIDATE_CPU_FLAG_LAST))) - return NULL; + goto cleanup; do { char line[1024]; @@ -246,6 +246,7 @@ virBitmapPtr virHostValidateGetCPUFlags(void) virStringFreeListCount(tokens, ntokens); } while (1); + cleanup: VIR_FORCE_FCLOSE(fp); return flags;