Module Name: src
Committed By: jdolecek
Date: Fri Jun 22 22:50:53 UTC 2018
Modified Files:
src/usr.sbin/intrctl: intrctl.c
Log Message:
fix free() on unitialized value for list -c when there are no
assigned interrupts
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/intrctl/intrctl.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/intrctl/intrctl.c
diff -u src/usr.sbin/intrctl/intrctl.c:1.7 src/usr.sbin/intrctl/intrctl.c:1.8
--- src/usr.sbin/intrctl/intrctl.c:1.7 Wed Nov 2 11:03:33 2016
+++ src/usr.sbin/intrctl/intrctl.c Fri Jun 22 22:50:53 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: intrctl.c,v 1.7 2016/11/02 11:03:33 ryo Exp $ */
+/* $NetBSD: intrctl.c,v 1.8 2018/06/22 22:50:53 jdolecek Exp $ */
/*
* Copyright (c) 2015 Internet Initiative Japan Inc.
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: intrctl.c,v 1.7 2016/11/02 11:03:33 ryo Exp $");
+__RCSID("$NetBSD: intrctl.c,v 1.8 2018/06/22 22:50:53 jdolecek Exp $");
#include <sys/param.h>
#include <sys/sysctl.h>
@@ -184,7 +184,7 @@ intrctl_list(int argc, char **argv)
printf("%-*s ", (int)intridlen, illine->ill_intrid);
if (compact) {
uint64_t total = 0;
- char *affinity, *oaffinity = NULL;
+ char *affinity = NULL, *oaffinity = NULL;
for (i = 0; i < ncpus; i++) {
illc = &illine->ill_cpu[i];
total += illc->illc_count;
@@ -200,7 +200,8 @@ intrctl_list(int argc, char **argv)
}
printf("%20" PRIu64 " ", total);
printf("%5s ", affinity ? affinity : "none");
- free(affinity);
+ if (affinity)
+ free(affinity);
} else {
for (i = 0; i < ncpus; i++) {
illc = &illine->ill_cpu[i];