we request_firmware in slic_card_download_gbrcv and we return out
with out calling release_firmware, where we compare against a
firmware lengths of certain device ids.

Signed-off-by: Devendra Naga <devendra.a...@gmail.com>
---
 drivers/staging/slicoss/slicoss.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/slicoss/slicoss.c 
b/drivers/staging/slicoss/slicoss.c
index eb498b8..170e0df 100644
--- a/drivers/staging/slicoss/slicoss.c
+++ b/drivers/staging/slicoss/slicoss.c
@@ -528,12 +528,16 @@ static int slic_card_download_gbrcv(struct adapter 
*adapter)
        index += 4;
        switch (adapter->devid) {
        case SLIC_2GB_DEVICE_ID:
-               if (rcvucodelen != OasisRcvUCodeLen)
+               if (rcvucodelen != OasisRcvUCodeLen) {
+                       release_firmware(fw);
                        return -EINVAL;
+               }
                break;
        case SLIC_1GB_DEVICE_ID:
-               if (rcvucodelen != GBRcvUCodeLen)
+               if (rcvucodelen != GBRcvUCodeLen) {
+                       release_firmware(fw);
                        return -EINVAL;
+               }
                break;
        default:
                ASSERT(0);
-- 
1.7.9.5

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to