netdev: Clean up on "construct" error in netdev_open().
authorBen Pfaff <blp@nicira.com>
Sun, 11 Aug 2013 03:46:21 +0000 (20:46 -0700)
committerBen Pfaff <blp@nicira.com>
Sun, 11 Aug 2013 17:24:48 +0000 (10:24 -0700)
Reported-by: ZhengLingyun <konghuarukhr@163.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/netdev.c

index 0e8ec58..088aea9 100644 (file)
@@ -328,6 +328,9 @@ netdev_open(const char *name, const char *type, struct netdev **netdevp)
 
                     atomic_add(&rc->ref_cnt, 1, &old_ref_cnt);
                 } else {
+                    free(netdev->name);
+                    ovs_assert(list_is_empty(&netdev->saved_flags_list));
+                    shash_delete(&netdev_shash, netdev->node);
                     rc->class->dealloc(netdev);
                 }
             } else {