From: Ben Pfaff Date: Thu, 4 Nov 2010 00:00:57 +0000 (-0700) Subject: netdev: Assert that the type of a new network device is correct. X-Git-Tag: v1.1.0~933 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;ds=sidebyside;h=a8f86734614d584ff72ffe34938bb3e9cf05394c;p=sliver-openvswitch.git netdev: Assert that the type of a new network device is correct. This would have found a bug that I accidentally inserted while working on netdev-linux. --- diff --git a/lib/netdev.c b/lib/netdev.c index 5cd252c3a..34cb1e9b5 100644 --- a/lib/netdev.c +++ b/lib/netdev.c @@ -251,6 +251,7 @@ static int create_device(struct netdev_options *options, struct netdev_dev **netdev_devp) { struct netdev_class *netdev_class; + int error; if (!options->type || strlen(options->type) == 0) { /* Default to system. */ @@ -262,8 +263,10 @@ create_device(struct netdev_options *options, struct netdev_dev **netdev_devp) return EAFNOSUPPORT; } - return netdev_class->create(netdev_class, options->name, options->args, - netdev_devp); + error = netdev_class->create(netdev_class, options->name, options->args, + netdev_devp); + assert(error || (*netdev_devp)->netdev_class == netdev_class); + return error; } /* Opens the network device named 'name' (e.g. "eth0") and returns zero if