[CHECKER]: malloc/free errors part III

From: Dawson Engler (engler@csl.Stanford.EDU)
Date: Fri Aug 11 2000 - 19:55:09 EST


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/



This archive was generated by hypermail 2b29 : Tue Aug 15 2000 - 21:00:26 EST