From a8f86734614d584ff72ffe34938bb3e9cf05394c Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 3 Nov 2010 17:00:57 -0700 Subject: [PATCH] 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. --- lib/netdev.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 -- 2.43.0