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 <fmalita@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
5bae7ac9fe
commit
9ee0be05dc
1 changed files with 1 additions and 3 deletions
|
@ -1146,14 +1146,12 @@ static int hisax_cs_setup(int cardnr, struct IsdnCard *card,
|
||||||
}
|
}
|
||||||
if (ret) {
|
if (ret) {
|
||||||
closecard(cardnr);
|
closecard(cardnr);
|
||||||
ret = 0;
|
|
||||||
goto outf_cs;
|
goto outf_cs;
|
||||||
}
|
}
|
||||||
init_tei(cs, cs->protocol);
|
init_tei(cs, cs->protocol);
|
||||||
ret = CallcNewChan(cs);
|
ret = CallcNewChan(cs);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
closecard(cardnr);
|
closecard(cardnr);
|
||||||
ret = 0;
|
|
||||||
goto outf_cs;
|
goto outf_cs;
|
||||||
}
|
}
|
||||||
/* ISAR needs firmware download first */
|
/* ISAR needs firmware download first */
|
||||||
|
@ -1165,7 +1163,7 @@ static int hisax_cs_setup(int cardnr, struct IsdnCard *card,
|
||||||
outf_cs:
|
outf_cs:
|
||||||
kfree(cs);
|
kfree(cs);
|
||||||
card->cs = NULL;
|
card->cs = NULL;
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int checkcard(int cardnr, char *id, int *busy_flag, struct module *lockowner)
|
static int checkcard(int cardnr, char *id, int *busy_flag, struct module *lockowner)
|
||||||
|
|
Loading…
Add table
Reference in a new issue