netdev: fix segfault in lookup_netdev().
authorBen Pfaff <blp@nicira.com>
Mon, 9 Feb 2009 17:57:53 +0000 (09:57 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 9 Feb 2009 17:58:37 +0000 (09:58 -0800)
svec_find() returns SIZE_MAX, not 0, when the specified name cannot be
found.  Don't dereference the names array in this case.

Fixes a segfault that commonly occurred when secchan was started by
vswitchd.

lib/netdev.c

index 8cf778f35a61ed23d4219b950e5d6dba9bd3abd8..1dbc7630ed5fbcd2a2e232bcf00aa34fe9b336f0 100644 (file)
@@ -1113,7 +1113,7 @@ static const char *
 lookup_netdev(const struct netdev_monitor *mon, const char *name)
 {
     size_t idx = svec_find(&mon->netdevs, name);
-    return idx ? mon->netdevs.names[idx] : NULL;
+    return idx != SIZE_MAX ? mon->netdevs.names[idx] : NULL;
 }
 
 static const char *