datapath-windows: fix MIN() macro
authorNithin Raju <nithin@vmware.com>
Wed, 25 Nov 2015 20:16:30 +0000 (12:16 -0800)
committerBen Pfaff <blp@ovn.org>
Thu, 26 Nov 2015 05:55:33 +0000 (21:55 -0800)
A quick implementation of MIN() didn't take into account operator
precedence as shown in the following example:

 #include <stdio.h>
 #define MYMIN(_a, _b) (_a) > (_b) ? (_b) : (_a)
 int main() {
     if (MYMIN(512, 256) < 14) {
         printf("buggy MYMIN\n");
     }
     return 0;
 }

Signed-off-by: Nithin Raju <nithin@vmware.com>
Acked-by: Russell Bryant <russell@ovn.org>
Signed-off-by: Ben Pfaff <blp@ovn.org>
datapath-windows/ovsext/Util.h

index 0bbc52b..e5ba72b 100644 (file)
@@ -66,7 +66,7 @@ VOID OvsFreeAlignedMemory(VOID *ptr);
 VOID OvsAppendList(PLIST_ENTRY dst, PLIST_ENTRY src);
 
 
-#define MIN(_a, _b) (_a) > (_b) ? (_b) : (_a)
+#define MIN(_a, _b) ((_a) > (_b) ? (_b) : (_a))
 #define ARRAY_SIZE(_x)  ((sizeof(_x))/sizeof (_x)[0])
 #define OVS_SWITCH_PORT_ID_INVALID  (NDIS_SWITCH_PORT_ID)(-1)