lkml.org 
[lkml]   [2000]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[CHECKER]: malloc/free errors part III
Date
Hi,

here's the third vetted installment of malloc/free errors. I've looked
over all of them, but the not-freeing-on-error cases were sometimes a
little subtle so there may still be a few false positives.

Dawson
------------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1115:usb_parse_configuration: ERROR: did not free config on error path

Not sure: looks like you'll just overwrite it on the second pass:

config->interface = (struct usb_interface *)
kmalloc(config->bNumInterfaces *
sizeof(struct usb_interface), GFP_KERNEL);

-------------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/i2o/i2o_config.c:502:ioctl_html: ERROR: did not free query on error path

if(kcmd.qlen) /* Check for post data */
{
query = kmalloc(kcmd.qlen, GFP_KERNEL);
if(!query)
{
i2o_unlock_controller(c);
return -ENOMEM;
}
if(copy_from_user(query, kcmd.qbuf, kcmd.qlen))
{
i2o_unlock_controller(c);
printk(KERN_INFO "i2o_config: could not get query\n");
kfree(query);
return -EFAULT;
}
}

res = kmalloc(65536, GFP_KERNEL);
if(!res)
{

i2o_unlock_controller(c);
lost query
----> return -ENOMEM;
}

-------------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/i2o/i2o_core.c:1532:i2o_reset_controller: ERROR: did not free status on error path

status=(void *)kmalloc(4, GFP_KERNEL);
if(status==NULL) {
printk(KERN_ERR "IOP reset failed - no free memory.\n");
return -ENOMEM;
}

....
{
if((jiffies-time) >= 30*HZ)
{
printk(KERN_ERR "%s: Timeout waiting for IOP reset.\n",
c->name);
status lost
---> return -ETIMEDOUT;
}

-------------------------------------------------------------------------

/u2/engler/ic/linux-2.3.99/drivers/ide/ide-probe.c:626:init_irq: ERROR: memset of unchecked var 'hwgroup'!

hwgroup = kmalloc(sizeof(ide_hwgroup_t), GFP_KERNEL);
memset(hwgroup, 0, sizeof(ide_hwgroup_t));

-------------------------------------------------------------------------
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/ide/ide-probe.c:725:init_gendisk: ERROR: memset of unchecked var 'gd'!
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/ide/ide-probe.c:728:init_gendisk: ERROR: Unchecked use of malloc'd var 'bs'
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/ide/ide-probe.c:729:init_gendisk: ERROR: Unchecked use of malloc'd var 'max_sect'
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/ide/ide-probe.c:730:init_gendisk: ERROR: Unchecked use of malloc'd var 'max_ra'
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/ide/ide-probe.c:744:init_gendisk: ERROR: Unchecked use of malloc'd var 'gd'

minors = units * (1<<PARTN_BITS);
gd = kmalloc (sizeof(struct gendisk), GFP_KERNEL);
gd->sizes = kmalloc (minors * sizeof(int), GFP_KERNEL);
gd->part = kmalloc (minors * sizeof(struct hd_struct), GFP_KERNEL);
bs = kmalloc (minors*sizeof(int), GFP_KERNEL);
max_sect = kmalloc (minors*sizeof(int), GFP_KERNEL);
max_ra = kmalloc (minors*sizeof(int), GFP_KERNEL);

memset(gd->part, 0, minors * sizeof(struct hd_struct));

-------------------------------------------------------------------------

/u2/engler/ic/linux-2.3.99/drivers/scsi/scsi.c:1428:scsi_build_commandblocks: ERROR: memset of unchecked var 'SCpnt'!


SCpnt = (Scsi_Cmnd *)
kmalloc(sizeof(Scsi_Cmnd), GFP_ATOMIC |
(host->unchecked_isa_dma ? GFP_DMA : 0));
Uh. Gotta check *before* use ;-)
---> memset(SCpnt, 0, sizeof(Scsi_Cmnd));
if (NULL == SCpnt)
break; /* If not, the next line will oops ... */
memset(&SCpnt->eh_timeout, 0, sizeof(SCpnt->eh_timeout));

-------------------------------------------------------------------------

/u2/engler/ic/linux-2.3.99/drivers/scsi/scsi.c:2715:scsi_get_host_dev: ERROR: memset of unchecked var 'SDpnt'!

SDpnt = (Scsi_Device *) kmalloc(sizeof(Scsi_Device),
GFP_ATOMIC);
memset(SDpnt, 0, sizeof(Scsi_Device));


-------------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/scsi/eata_dma.c:917:get_board_data: ERROR: memset of unchecked var 'cp'!
/u2/engler/ic/linux-2.3.99/drivers/scsi/eata_dma.c:918:get_board_data: ERROR: memset of unchecked var 'sp'!

cp = (struct eata_ccb *) kmalloc(sizeof(struct eata_ccb),
GFP_ATOMIC | GFP_DMA);
sp = (struct eata_sp *) kmalloc(sizeof(struct eata_sp),
GFP_ATOMIC | GFP_DMA);
buff = dma_scratch;

memset(cp, 0, sizeof(struct eata_ccb));
memset(sp, 0, sizeof(struct eata_sp));

-------------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/scsi/hosts.c:740:scsi_register: ERROR: memset of unchecked var 'retval'!

retval = (struct Scsi_Host *)kmalloc(sizeof(struct Scsi_Host) + j,
(tpnt->unchecked_isa_dma && j ? GFP_DMA : 0) | GFP_ATOMIC);
memset(retval, 0, sizeof(struct Scsi_Host) + j);


/u2/engler/ic/linux-2.3.99/drivers/scsi/hosts.c:766:scsi_register: ERROR: Unchecked use of malloc'd var 'shn'
/u2/engler/ic/linux-2.3.99/drivers/scsi/hosts.c:767:scsi_register: ERROR: Unchecked use of malloc'd var 'shn'
/u2/engler/ic/linux-2.3.99/drivers/scsi/hosts.c:768:scsi_register: ERROR: Unchecked use of malloc'd var 'shn'

shn->name = kmalloc(len+1, GFP_ATOMIC);
if (tpnt->proc_dir)
strncpy(shn->name, tpnt->proc_dir->name, len);


-------------------------------------------------------------------------

/u2/engler/ic/linux-2.3.99/drivers/scsi/ips.c:3237:ips_allocatescbs: ERROR: memset of unchecked var 'ha'!

ha->scbs = (ips_scb_t *) kmalloc(ha->max_cmds * sizeof(ips_scb_t), GFP_KERNEL|GFP_DMA);

memset(ha->scbs, 0, ha->max_cmds * sizeof(ips_scb_t));
---------------------------------------------------------------
CONFIRM [CHECK]

/u2/engler/ic/linux-2.3.99/drivers/scsi/sd.c:1024:sd_init: ERROR: memset of unchecked var 'rscsi_disks'!

rscsi_disks = (Scsi_Disk *)
kmalloc(sd_template.dev_max * sizeof(Scsi_Disk), GFP_ATOMIC);
memset(rscsi_disks, 0, sd_template.dev_max * sizeof(Scsi_Disk));

CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sd.c:1028:sd_init: ERROR: memset of unchecked var 'sd_sizes'!
/* for every (necessary) major: */
sd_sizes = (int *) kmalloc((sd_template.dev_max << 4) * sizeof(int), GFP_ATOMIC);
memset(sd_sizes, 0, (sd_template.dev_max << 4) * sizeof(int));

sd_blocksizes = (int *) kmalloc((sd_template.dev_max << 4) * sizeof(int), GFP_ATOMIC);
sd_hardsizes = (int *) kmalloc((sd_template.dev_max << 4) * sizeof(int), GFP_ATOMIC);

CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sd.c:1039:sd_init: ERROR: Unchecked use of malloc'd var 'sd_blocksizes'
for (i = 0; i < sd_template.dev_max << 4; i++) {
sd_blocksizes[i] = 1024;
sd_hardsizes[i] = 512; }

CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sd.c:1045:sd_init: ERROR: memset of unchecked var 'sd'!

sd = (struct hd_struct *) kmalloc((sd_template.dev_max << 4) * sizeof(struct hd_struct),
GFP_ATOMIC);
memset(sd, 0, (sd_template.dev_max << 4) * sizeof(struct hd_struct));


CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sd.c:1055:sd_init: ERROR: memset of unchecked var 'sd_gendisks'!
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sd.c:1059:sd_init: ERROR: memset of unchecked var 'sd_gendisks'!
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sd.c:1040:sd_init: ERROR: Unchecked use of malloc'd var 'sd_hardsizes'

------------------------------------------------------------------------------

CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sr.c:712:sr_init: ERROR: memset of unchecked var 'scsi_CDs'!
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sr.c:715:sr_init: ERROR: memset of unchecked var 'sr_sizes'!
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sr.c:730:sr_init: ERROR: Unchecked use of malloc'd var 'sr_blocksizes'
CONFIRM [CHECK]
/u2/engler/ic/linux-2.3.99/drivers/scsi/sr.c:727:sr_init: ERROR: Unchecked use of malloc'd var 'sr_blocksizes'

scsi_CDs = (Scsi_CD *) kmalloc(sr_template.dev_max * sizeof(Scsi_CD), GFP_ATOMIC);
memset(scsi_CDs, 0, sr_template.dev_max * sizeof(Scsi_CD));
sr_sizes = (int *) kmalloc(sr_template.dev_max * sizeof(int), GFP_ATOMIC);
memset(sr_sizes, 0, sr_template.dev_max * sizeof(int));

sr_blocksizes = (int *) kmalloc(sr_template.dev_max * sizeof(int), GFP_ATOMIC);
sr_hardsizes = (int *) kmalloc(sr_template.dev_max * sizeof(int), GFP_ATOMIC);

---------------------------------------------------------------------------
CONFIRM [FREE]
/u2/engler/ic/linux-2.3.99/drivers/cdrom/mcdx.c:1516:mcdx_readtoc: ERROR: did not free stuffp on error path
CONFIRM [FREE]
/u2/engler/ic/linux-2.3.99/drivers/cdrom/mcdx.c:1492:mcdx_readtoc: ERROR: did not free stuffp on error path

stuffp->toc = kmalloc(size, GFP_KERNEL);
if (!stuffp->toc) {
xwarn("Cannot malloc %d bytes for toc\n", size);
mcdx_setdrivemode(stuffp, DATA, 1);
shouldn't this be ENOMEM?
----> return -EIO;
}
}

---------------------------------------------------------------------------
CONFIRM [CHECK]

/u2/engler/ic/linux-2.3.99/drivers/isdn/hisax/callc.c:1177:init_PStack: ERROR: Unchecked use of malloc'd var 'stp'

*stp = kmalloc(sizeof(struct PStack), GFP_ATOMIC);
(*stp)->next = NULL;


---------------------------------------------------------------------------
CONFIRM [CHECK]

/u2/engler/ic/linux-2.3.99/drivers/isdn/hisax/fsm.c:64:FsmNew: ERROR: memset of unchecked var 'fsm'!

fsm->jumpmatrix = (FSMFNPTR *)
kmalloc(sizeof (FSMFNPTR) * fsm->state_count * fsm->event_count, GFP_KERNEL);
memset(fsm->jumpmatrix, 0, sizeof (FSMFNPTR) * fsm->state_count * fsm->e

---------------------------------------------------------------------------
CONFIRM [FREE]

/u2/engler/ic/linux-2.3.99/drivers/isdn/icn/icn.c:1066:icn_loadboot: ERROR: did not free codebuf on error path

Got it right on most paths, missed this one:

if (!(codebuf = kmalloc(ICN_CODE_STAGE1, GFP_KERNEL))) {
printk(KERN_WARNING "icn: Could not allocate code buffer\n");
return -ENOMEM;
}

...

if (!dev.mvalid) {
if (check_shmem((ulong) dev.shmem, 0x4000)) {
printk(KERN_WARNING
"icn: memory at 0x%08lx in use.\n", (ulong) dev.shmem);
restore_flags(flags);
code buf still allocated.
---> return -EBUSY;
}

---------------------------------------------------------------------------
Not sure: is this possibly getting lost? Or are the two if statemnets
exclusive?

/u2/engler/ic/linux-2.3.99/drivers/isdn/pcbit/capi.c:458:capi_decode_conn_ind: ERROR: did not free info on error path

len = skb->data[0];

if (len > 0) {
int count = 1;

#ifdef DEBUG
printk(KERN_DEBUG "CPN: Octect 3 %02x\n", skb->data[1]);
#endif
if ((skb->data[1] & 0x80) == 0)
count = 2;

------------> if (!(info->data.setup.CallingPN = kmalloc(len - count + 1, GFP_ATOMIC)))
return -1;



...


skb_pull(skb, len + 1);

/* Calling Party Subaddress */
skb_pull(skb, skb->data[0] + 1);
/* Called Party Number */

len = skb->data[0];
if (len > 0) { int count = 1;
if ((skb->data[1] & 0x80) == 0)
count = 2;
-------> if (!(info->data.setup.CalledPN = kmalloc(len - count + 1, GFP_ATOMIC)))
return -1;
memcpy(info->data.setup.CalledPN, skb->data + count + 1,
len - count);
info->data.setup.CalledPN[len - count] = 0;

}
else {


-----------------------------------------------------------------
CONFIRM [FREE]
/u2/engler/ic/linux-2.3.99/drivers/isdn/pcbit/drv.c:208:pcbit_init_dev: ERROR: did not free dev_if on error path

It looks like it's not freeing dev_if on this path (it assigns it
to dev->dev_if)

if (!register_isdn(dev_if)) {
free_irq(irq, dev);
kfree(dev->b1);
kfree(dev->b2);
kfree(dev);
CHECKER BUG: why is this not getting caught:
dereffing dev after freeing it!
---> iounmap((unsigned char*)dev->sh_mem);
release_mem_region(dev->ph_mem, 4096);
dev_pcbit[board] = NULL;
return -EIO;
}

-----------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/isdn/eicon/eicon_isa.c:421:eicon_isa_load: ERROR: did not free code on error path

tmp = readb(&boot->msize);
if (tmp != 8 && tmp != 16 && tmp != 24 &&
tmp != 32 && tmp != 48 && tmp != 60) {
printk(KERN_WARNING "eicon_isa_load: invalid memsize\n");
eicon_isa_release_shmem(card);
return -EIO;
}

eicon_isa_printpar(card);
---------------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/atm/iphase.c:1639:rx_init: ERROR: did not free dle_addr on error path
/u2/engler/ic/linux-2.3.99/drivers/atm/iphase.c:1988:tx_init: ERROR: did not free dle_addr on error path
/u2/engler/ic/linux-2.3.99/drivers/atm/iphase.c:1979:tx_init: ERROR: did not free dle_addr on error path

Shouldn't this bail with an error if it cannot allocate? It's just going
and dereffing it.

/* allocate 8k bytes */
dle_addr = (u32*)kmalloc(2*sizeof(struct dle)*DLE_ENTRIES, GFP_KERNEL);
if (!dle_addr)
{
printk(KERN_ERR DEV_LABEL "can't allocate DLEs\n");
}
/* find 4k byte boundary within the 8k allocated */
dle_addr = (u32*)( ((u32)dle_addr+(4096-1)) & ~(4096-1) );


---------------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/drivers/atm/iphase.c:2129:tx_init: ERROR: Unchecked use of malloc'd var 'iadev'

iadev->testTable[i] = (struct testTable_t *) kmalloc(sizeof(struct testTable_t), GFP_KERNEL);
iadev->testTable[i]->lastTime = 0;


------------------------------------------------------------------------

There are a boatload of errors caused by the bogus code in CODA_ALLOC
where it allocates, checks for null, and then memsets even if null.


Eg:
CONFIRM [CODA]
/u2/engler/ic/linux-2.3.99/fs/coda/cache.c:89:coda_cache_create: ERROR: memset of unchecked var 'cc'!

-----------
CONFIRM [CODA]
/u2/engler/ic/linux-2.3.99/fs/coda/dir.c:681:coda_venus_readdir: ERROR: memset of unchecked var 'buff'!

CONFIRM [CODA]
/u2/engler/ic/linux-2.3.99/fs/coda/psdev.c:137:coda_psdev_write: ERROR: memset of unchecked var 'dcbuf'!

CONFIRM [CODA]
/u2/engler/ic/linux-2.3.99/fs/coda/upcall.c:80:venus_rootfid: ERROR: Unchecked use of malloc'd var 'inp'
/u2/engler/ic/linux-2.3.99/fs/coda/upcall.c:80:venus_rootfid: ERROR: Unchecked use of malloc'd var 'inp'
/u2/engler/ic/linux-2.3.99/fs/coda/upcall.c:80:venus_rootfid: ERROR: memset of unchecked var 'inp'!

-------------------------------------------------------------------------

Actually, it loses the storage even on success!

/u2/engler/ic/linux-2.3.99/net/atm/common.c:560:atm_ioctl: ERROR: did not free tmp_buf on error path

if (size > len) return -E2BIG;
tmp_buf = kmalloc(size,GFP_KERNEL);
if (!tmp_buf) return -ENOMEM;
for (dev = atm_devs; dev; dev = dev->next)
*tmp_buf++ = dev->number;
if (copy_to_user(buf,(char *) tmp_buf-size,size))
return -EFAULT;
return put_user(size,
&((struct atm_iobuf *) arg)->length) ? -EFAULT : 0;

-------------------------------------------------------------------

/u2/engler/ic/linux-2.3.99/net/atm/lec.c:280:lec_send_packet: ERROR: Unchecked use of malloc'd var 'nb'

nb=(unsigned char*)kmalloc(64, GFP_ATOMIC);
memcpy(nb,skb->data,skb->len);
skb->head = skb->data = nb;
skb->tail = nb+62;
skb->end = nb+64;


-----------------------------------------------------------------------
/u2/engler/ic/linux-2.3.99/net/atm/mpc.c:169:atm_mpoa_add_qos: ERROR: allocated 84 bytes for 'entry' need 92

Typo in the size field.

-------------------------------------------------------------------
UNSURE, but it looks like all these interface allocations will be lost.
If it fails, they just get overwritten.

/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path

/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1023:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:956:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1057:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1046:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1023:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:956:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1057:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1046:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1023:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:956:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1057:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1046:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1023:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:956:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1057:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1046:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1023:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:956:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1057:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1046:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:956:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1057:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1046:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1023:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:1038:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:990:usb_parse_interface: ERROR: did not free interface on error path
/u2/engler/ic/linux-2.3.99/drivers/usb/usb.c:956:usb_parse_interface: ERROR: did not free interface on error path

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:58    [W:0.716 / U:0.328 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site