* [test11-pre2] rrunner.c compiler error @ 2000-11-10 2:49 Frank Davis 2000-11-10 3:09 ` Alan Cox 0 siblings, 1 reply; 4+ messages in thread From: Frank Davis @ 2000-11-10 2:49 UTC (permalink / raw) To: linux-kernel; +Cc: torvalds, fdavis112 Hello, I received the following error while compiling test11-pre2: rrunner.c : In function 'rr_ioctl' rrunner.c:1558: label 'out' used but not defined make[2]: *** [rrunner.o] Error 1 make[2]: Leaving directory '/usr/src/linux/drivers/net' ... make: ** [mod_drivers] Error 2 out is located in the file, so I'm assuming its a bracing issue. Regards, Frank - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [test11-pre2] rrunner.c compiler error 2000-11-10 2:49 [test11-pre2] rrunner.c compiler error Frank Davis @ 2000-11-10 3:09 ` Alan Cox 2000-11-10 14:04 ` [PATCH] " Bartlomiej Zolnierkiewicz 0 siblings, 1 reply; 4+ messages in thread From: Alan Cox @ 2000-11-10 3:09 UTC (permalink / raw) To: Frank Davis; +Cc: linux-kernel, torvalds, fdavis112 > rrunner.c : In function 'rr_ioctl' > rrunner.c:1558: label 'out' used but not defined > make[2]: *** [rrunner.o] Error 1 My fault. Swap that 1158 line pair error = -EPERM; goto out; with return -EPERM - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] Re: [test11-pre2] rrunner.c compiler error 2000-11-10 3:09 ` Alan Cox @ 2000-11-10 14:04 ` Bartlomiej Zolnierkiewicz 2000-11-10 14:27 ` Jeff Garzik 0 siblings, 1 reply; 4+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2000-11-10 14:04 UTC (permalink / raw) To: Alan Cox; +Cc: Frank Davis, linux-kernel, torvalds On Fri, 10 Nov 2000, Alan Cox wrote: > > rrunner.c : In function 'rr_ioctl' > > rrunner.c:1558: label 'out' used but not defined > > make[2]: *** [rrunner.o] Error 1 > > My fault. Swap that 1158 line pair > > error = -EPERM; > goto out; > > with > return -EPERM > There is also line 1566 with "goto out;" (out of memory case). Complete bugfix: --- linux-240t11p2/drivers/net/rrunner.c Fri Nov 10 14:28:43 2000 +++ linux/drivers/net/rrunner.c Fri Nov 10 14:50:37 2000 @@ -1554,16 +1554,14 @@ switch(cmd){ case SIOCRRGFW: if (!capable(CAP_SYS_RAWIO)){ - error = -EPERM; - goto out; + return -EPERM; } image = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); if (!image){ printk(KERN_ERR "%s: Unable to allocate memory " "for EEPROM image\n", dev->name); - error = -ENOMEM; - goto out; + return -ENOMEM; } spin_lock(&rrpriv->lock); -- Bartlomiej Zolnierkiewicz <bkz@linux-ide.org> - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Re: [test11-pre2] rrunner.c compiler error 2000-11-10 14:04 ` [PATCH] " Bartlomiej Zolnierkiewicz @ 2000-11-10 14:27 ` Jeff Garzik 0 siblings, 0 replies; 4+ messages in thread From: Jeff Garzik @ 2000-11-10 14:27 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz; +Cc: Alan Cox, Frank Davis, linux-kernel, torvalds [-- Attachment #1: Type: text/plain, Size: 465 bytes --] Blah. Puke. Ug. Not your changes, Bart... which are ok, but incomplete. Here is the complete bugfix. There are two places where error conditions are not fully handled, and 'out_spin' can kfree(image), saving some code. The worst bug of the list... if the firmware copy_from_user failed.... we still load firmware [ie. questionable data] into EEPROM. -- Jeff Garzik | Building 1024 | Would you like a Twinkie? MandrakeSoft | [-- Attachment #2: rrunner.patch --] [-- Type: text/plain, Size: 2185 bytes --] Index: drivers/net/rrunner.c =================================================================== RCS file: /cvsroot/gkernel/linux_2_4/drivers/net/rrunner.c,v retrieving revision 1.1.1.4 diff -u -r1.1.1.4 rrunner.c --- drivers/net/rrunner.c 2000/11/10 02:09:10 1.1.1.4 +++ drivers/net/rrunner.c 2000/11/10 14:21:01 @@ -1550,36 +1550,29 @@ rrpriv = (struct rr_private *)dev->priv; - switch(cmd){ case SIOCRRGFW: - if (!capable(CAP_SYS_RAWIO)){ - error = -EPERM; - goto out; - } + if (!capable(CAP_SYS_RAWIO)) + return -EPERM; image = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); if (!image){ printk(KERN_ERR "%s: Unable to allocate memory " "for EEPROM image\n", dev->name); - error = -ENOMEM; - goto out; + return -ENOMEM; } spin_lock(&rrpriv->lock); if (rrpriv->fw_running){ printk("%s: Firmware already running\n", dev->name); - kfree(image); error = -EPERM; goto out_spin; } i = rr_read_eeprom(rrpriv, 0, image, EEPROM_BYTES); if (i != EEPROM_BYTES){ - kfree(image); - printk(KERN_ERR "%s: Error reading EEPROM\n", - dev->name); + printk(KERN_ERR "%s: Error reading EEPROM\n", dev->name); error = -EFAULT; goto out_spin; } @@ -1591,9 +1584,8 @@ return error; case SIOCRRPFW: - if (!capable(CAP_SYS_RAWIO)){ + if (!capable(CAP_SYS_RAWIO)) return -EPERM; - } image = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); if (!image){ @@ -1604,18 +1596,21 @@ oldimage = kmalloc(EEPROM_WORDS * sizeof(u32), GFP_KERNEL); if (!oldimage){ + kfree(image); printk(KERN_ERR "%s: Unable to allocate memory " "for old EEPROM image\n", dev->name); return -ENOMEM; } error = copy_from_user(image, rq->ifr_data, EEPROM_BYTES); - if (error) - error = -EFAULT; + if (error) { + kfree(image); + kfree(oldimage); + return -EFAULT; + } spin_lock(&rrpriv->lock); if (rrpriv->fw_running){ - kfree(image); kfree(oldimage); printk("%s: Firmware already running\n", dev->name); error = -EPERM; @@ -1652,6 +1647,7 @@ } out_spin: + kfree(image); spin_unlock(&rrpriv->lock); return error; } ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2000-11-10 14:28 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2000-11-10 2:49 [test11-pre2] rrunner.c compiler error Frank Davis 2000-11-10 3:09 ` Alan Cox 2000-11-10 14:04 ` [PATCH] " Bartlomiej Zolnierkiewicz 2000-11-10 14:27 ` Jeff Garzik
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox