staging: ozwpan: implement error handling in ozwpan_init()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Fri, 20 Mar 2015 23:15:32 +0000 (02:15 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Mar 2015 12:13:13 +0000 (13:13 +0100)
Errors are correctly handled in oz_cdev_register() and oz_protocol_init(),
but then they are ignored in ozwpan_init().

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ozwpan/ozmain.c

index 7d6ef4c..74ef348 100644 (file)
@@ -34,11 +34,21 @@ MODULE_PARM_DESC(g_net_dev, "The device(s) to bind to; "
  */
 static int __init ozwpan_init(void)
 {
-       oz_cdev_register();
-       oz_protocol_init(g_net_dev);
+       int err;
+
+       err = oz_cdev_register();
+       if (err)
+               return err;
+       err = oz_protocol_init(g_net_dev);
+       if (err)
+               goto err_protocol;
        oz_app_enable(OZ_APPID_USB, 1);
        oz_apps_init();
        return 0;
+
+err_protocol:
+       oz_cdev_deregister();
+       return err;
 }
 
 /*