dhcp: Don't pass NULL to memcmp() even with size 0.
authorBen Pfaff <blp@nicira.com>
Wed, 10 Feb 2010 19:29:58 +0000 (11:29 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 11 Feb 2010 18:33:11 +0000 (10:33 -0800)
ISO C says that the arguments to memcmp() must be nonnull even if the
size argument is 0, so don't do that.

Found by Clang (http://clang-analyzer.llvm.org).

lib/dhcp.c

index f0c36442dca39da56eec1c688aaa3e29b4cbf302..51d6ed0708896158873bfb5bb785ed052e610cfd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008 Nicira Networks.
+ * Copyright (c) 2008, 2010 Nicira Networks.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -497,7 +497,7 @@ dhcp_option_equals(const struct dhcp_option *a, const struct dhcp_option *b)
 {
     return ((a->data != NULL) == (b->data != NULL)
             && a->n == b->n
-            && !memcmp(a->data, b->data, a->n));
+            && (!a->data || !memcmp(a->data, b->data, a->n)));
 }
 
 /* Replaces 'ds' by a string representation of 'msg'.  If 'multiline' is