Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ee0be05dc69b61e5a869bffebd638b31898dae2
Commit:     9ee0be05dc69b61e5a869bffebd638b31898dae2
Parent:     5bae7ac9feba925fd0099057f6b23d7be80b7b41
Author:     Florin Malita <[EMAIL PROTECTED]>
AuthorDate: Wed Jul 18 18:04:46 2007 -0400
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Wed Jul 18 18:17:23 2007 -0400

    ISDN HiSax: uninitialized return in hisax_cs_setup
    
    Coverity (1792) spotted a possibly uninitialized return value in case of
    kmalloc() failure:
    
    1116 static int hisax_cs_setup(int cardnr, struct IsdnCard *card,
    1117                           struct IsdnCardState *cs)
    1119         int ret;
    1120
    1121         if (!(cs->rcvbuf = kmalloc(MAX_DFRAME_LEN_L1, GFP_ATOMIC))) {
    1122                 printk(KERN_WARNING "HiSax: No memory for isac 
rcvbuf\n");
    1123                 ll_unload(cs);
    1124                 goto outf_cs;
    ...
    1165 outf_cs:
    1166         kfree(cs);
    1167         card->cs = NULL;
    1168         return ret;
    
    The straightforward solution would be to just add the missing
    initialization but hardcoding the return value in the out_cs branch
    (only taken on failure) seems to work just as well and it allows killing
    a couple of other lines too.
    
    Signed-off-by: Florin Malita <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/isdn/hisax/config.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
index 5f7907e..97097ef 100644
--- a/drivers/isdn/hisax/config.c
+++ b/drivers/isdn/hisax/config.c
@@ -1146,14 +1146,12 @@ static int hisax_cs_setup(int cardnr, struct IsdnCard 
*card,
        }
        if (ret) {
                closecard(cardnr);
-               ret = 0;
                goto outf_cs;
        }
        init_tei(cs, cs->protocol);
        ret = CallcNewChan(cs);
        if (ret) {
                closecard(cardnr);
-               ret = 0;
                goto outf_cs;
        }
        /* ISAR needs firmware download first */
@@ -1165,7 +1163,7 @@ static int hisax_cs_setup(int cardnr, struct IsdnCard 
*card,
 outf_cs:
        kfree(cs);
        card->cs = NULL;
-       return ret;
+       return 0;
 }
 
 static int checkcard(int cardnr, char *id, int *busy_flag, struct module 
*lockowner)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to