farsync: add module_put to error path in fst_open()
authorPavel Shved <shved@ispras.ru>
Fri, 17 Jun 2011 06:25:10 +0000 (06:25 +0000)
committerDavid S. Miller <davem@conan.davemloft.net>
Fri, 17 Jun 2011 19:27:32 +0000 (15:27 -0400)
The fst_open() function, after a successful try_module_get() may return
an error code if hdlc_open() returns it.  However, it does not put the
module on this error path.

This patch adds the necessary module_put() call.

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

Signed-off-by: Pavel Shved <shved@ispras.ru>
Signed-off-by: David S. Miller <davem@conan.davemloft.net>
drivers/net/wan/farsync.c

index e050bd65e0378cbdd6643d893c01a4462a2dea2f..777d1a4e81b2cb0c43599e146e16d774e47abe66 100644 (file)
@@ -2203,8 +2203,10 @@ fst_open(struct net_device *dev)
 
        if (port->mode != FST_RAW) {
                err = hdlc_open(dev);
-               if (err)
+               if (err) {
+                       module_put(THIS_MODULE);
                        return err;
+               }
        }
 
        fst_openport(port);