From 3e927ea6c922d9320590e10589d5944d18d752cf Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Wed, 9 Sep 2015 08:50:56 -0500 Subject: [PATCH] nlmon: Fix up bitwise logic The flags in question contain multiple set bits. So we should only print the relevant details if all bits are set, not just one of the bits. --- monitor/nlmon.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/monitor/nlmon.c b/monitor/nlmon.c index 71f2bdb7..ae84c886 100644 --- a/monitor/nlmon.c +++ b/monitor/nlmon.c @@ -1646,10 +1646,12 @@ static void print_wsc_config_methods(unsigned int level, const char *label, v = l_get_be16(data); print_attr(level, "%s:", label); - if (v & WSC_CONFIGURATION_METHOD_PHYSICAL_DISPLAY_PIN) + if ((v & WSC_CONFIGURATION_METHOD_PHYSICAL_DISPLAY_PIN) == + WSC_CONFIGURATION_METHOD_PHYSICAL_DISPLAY_PIN) print_attr(level + 1, "Physical Display PIN"); - if (v & WSC_CONFIGURATION_METHOD_VIRTUAL_DISPLAY_PIN) + if ((v & WSC_CONFIGURATION_METHOD_VIRTUAL_DISPLAY_PIN) == + WSC_CONFIGURATION_METHOD_VIRTUAL_DISPLAY_PIN) print_attr(level + 1, "Virtual Display PIN"); flags = WSC_CONFIGURATION_METHOD_PHYSICAL_DISPLAY_PIN | @@ -1662,10 +1664,12 @@ static void print_wsc_config_methods(unsigned int level, const char *label, v &= ~WSC_CONFIGURATION_METHOD_P2P; } - if (v & WSC_CONFIGURATION_METHOD_PHYSICAL_PUSH_BUTTON) + if ((v & WSC_CONFIGURATION_METHOD_PHYSICAL_PUSH_BUTTON) == + WSC_CONFIGURATION_METHOD_PHYSICAL_PUSH_BUTTON) print_attr(level + 1, "Physical PushButton"); - if (v & WSC_CONFIGURATION_METHOD_VIRTUAL_PUSH_BUTTON) + if ((v & WSC_CONFIGURATION_METHOD_VIRTUAL_PUSH_BUTTON) == + WSC_CONFIGURATION_METHOD_VIRTUAL_PUSH_BUTTON) print_attr(level + 1, "Virtual PushButton"); flags = WSC_CONFIGURATION_METHOD_PHYSICAL_PUSH_BUTTON |