I noticed this while working on qemuDomainGetBlockInfo. Assigning a bool value to an int variable compiles fine, but raises red flags on the maintenance front as it becomes too easy to assign -1 or 2 or any other non-bool value to the same variable. * cfg.mk (sc_prohibit_int_assign_bool): New rule. * src/conf/snapshot_conf.c (virDomainSnapshotRedefinePrep): Fix offenders. * src/qemu/qemu_driver.c (qemuDomainGetBlockInfo) (qemuDomainSnapshotCreateXML): Likewise. * src/test/test_driver.c (testDomainSnapshotAlignDisks): Likewise. * src/util/vircgroup.c (virCgroupSupportsCpuBW): Likewise. * src/util/virpci.c (virPCIDeviceBindToStub): Likewise. * src/util/virutil.c (virIsCapableVport): Likewise. * tools/virsh-domain-monitor.c (cmdDomMemStat): Likewise. * tools/virsh-domain.c (cmdBlockResize, cmdScreenshot) (cmdInjectNMI, cmdSendKey, cmdSendProcessSignal) (cmdDetachInterface): Likewise. Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> --- cfg.mk | 6 ++++++ src/conf/snapshot_conf.c | 2 +- src/qemu/qemu_driver.c | 4 ++-- src/test/test_driver.c | 2 +- src/util/vircgroup.c | 2 +- src/util/virpci.c | 2 +- src/util/virutil.c | 2 +- tools/virsh-domain-monitor.c | 2 +- tools/virsh-domain.c | 12 ++++++------ 9 files changed, 20 insertions(+), 14 deletions(-) diff --git a/cfg.mk b/cfg.mk index f188645..c49f4f3 100644 --- a/cfg.mk +++ b/cfg.mk @@ -584,6 +584,12 @@ sc_prohibit_loop_var_decl: halt='declare loop iterators outside the for statement' \ $(_sc_search_regexp) +# Use 'bool', not 'int', when assigning true or false +sc_prohibit_int_assign_bool: + @prohibit='\<int\>.*= *(true|false)' \ + halt='use bool type for boolean values' \ + $(_sc_search_regexp) + # Many of the function names below came from this filter: # git grep -B2 '\<_('|grep -E '\.c- *[[:alpha:]_][[:alnum:]_]* ?\(.*[,;]$' \ # |sed 's/.*\.c- *//'|perl -pe 's/ ?\(.*//'|sort -u \ diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index 1f83b2c..c2caf33 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -1182,7 +1182,7 @@ virDomainSnapshotRedefinePrep(virDomainPtr domain, virDomainSnapshotDefPtr def = *defptr; int ret = -1; int align_location = VIR_DOMAIN_SNAPSHOT_LOCATION_INTERNAL; - int align_match = true; + bool align_match = true; char uuidstr[VIR_UUID_STRING_BUFLEN]; virDomainSnapshotObjPtr other; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a84fd47..74d1bdc 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -10933,7 +10933,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, struct stat sb; int idx; int format; - int activeFail = false; + bool activeFail = false; virQEMUDriverConfigPtr cfg = NULL; char *alias = NULL; char *buf = NULL; @@ -13809,7 +13809,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain, unsigned int parse_flags = VIR_DOMAIN_SNAPSHOT_PARSE_DISKS; virDomainSnapshotObjPtr other = NULL; int align_location = VIR_DOMAIN_SNAPSHOT_LOCATION_INTERNAL; - int align_match = true; + bool align_match = true; virQEMUDriverConfigPtr cfg = NULL; virCapsPtr caps = NULL; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index d7844bd..4b7fea1 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -6835,7 +6835,7 @@ testDomainSnapshotAlignDisks(virDomainObjPtr vm, unsigned int flags) { int align_location = VIR_DOMAIN_SNAPSHOT_LOCATION_INTERNAL; - int align_match = true; + bool align_match = true; if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY) { align_location = VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL; diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index 9bbe694..166f4dc 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -3908,7 +3908,7 @@ bool virCgroupSupportsCpuBW(virCgroupPtr cgroup) { char *path = NULL; - int ret = false; + bool ret = false; if (!cgroup) return false; diff --git a/src/util/virpci.c b/src/util/virpci.c index f60d0fa..cd78212 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -1182,7 +1182,7 @@ virPCIDeviceBindToStub(virPCIDevicePtr dev, const char *stubDriverName) { int result = -1; - int reprobe = false; + bool reprobe = false; char *stubDriverPath = NULL; char *driverLink = NULL; char *path = NULL; /* reused for different purposes */ diff --git a/src/util/virutil.c b/src/util/virutil.c index 88c8baf..9c40317 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -1995,7 +1995,7 @@ virIsCapableVport(const char *sysfs_prefix, { char *scsi_host_path = NULL; char *fc_host_path = NULL; - int ret = false; + bool ret = false; if (virAsprintf(&fc_host_path, "%s/host%d/%s", diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c index 4e434f8..259400f 100644 --- a/tools/virsh-domain-monitor.c +++ b/tools/virsh-domain-monitor.c @@ -298,7 +298,7 @@ cmdDomMemStat(vshControl *ctl, const vshCmd *cmd) virDomainMemoryStatStruct stats[VIR_DOMAIN_MEMORY_STAT_NR]; unsigned int nr_stats; size_t i; - int ret = false; + bool ret = false; int rv = 0; int period = -1; bool config = vshCommandOptBool(cmd, "config"); diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index a7e9151..d48765a 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -2640,7 +2640,7 @@ cmdBlockResize(vshControl *ctl, const vshCmd *cmd) const char *path = NULL; unsigned long long size = 0; unsigned int flags = 0; - int ret = false; + bool ret = false; if (vshCommandOptStringReq(ctl, cmd, "path", (const char **) &path) < 0) return false; @@ -5163,7 +5163,7 @@ cmdScreenshot(vshControl *ctl, const vshCmd *cmd) virStreamPtr st = NULL; unsigned int screen = 0; unsigned int flags = 0; /* currently unused */ - int ret = false; + bool ret = false; bool created = false; bool generated = false; char *mime = NULL; @@ -7615,7 +7615,7 @@ static bool cmdInjectNMI(vshControl *ctl, const vshCmd *cmd) { virDomainPtr dom; - int ret = true; + bool ret = true; if (!(dom = vshCommandOptDomain(ctl, cmd, NULL))) return false; @@ -7678,7 +7678,7 @@ static bool cmdSendKey(vshControl *ctl, const vshCmd *cmd) { virDomainPtr dom; - int ret = false; + bool ret = false; const char *codeset_option; int codeset; unsigned int holdtime = 0; @@ -7809,7 +7809,7 @@ static bool cmdSendProcessSignal(vshControl *ctl, const vshCmd *cmd) { virDomainPtr dom; - int ret = false; + bool ret = false; const char *pidstr; const char *signame; long long pid_value; @@ -10592,7 +10592,7 @@ cmdDetachInterface(vshControl *ctl, const vshCmd *cmd) int diff_mac; size_t i; int ret; - int functionReturn = false; + bool functionReturn = false; unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT; bool current = vshCommandOptBool(cmd, "current"); bool config = vshCommandOptBool(cmd, "config"); -- 1.9.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list