* Re: udevstart badly broken in udev 031
2004-09-12 23:56 udevstart badly broken in udev 031 Marco d'Itri
@ 2004-09-13 1:23 ` Kay Sievers
2004-09-13 6:15 ` Bob Barry
2004-09-14 6:00 ` Greg KH
2 siblings, 0 replies; 4+ messages in thread
From: Kay Sievers @ 2004-09-13 1:23 UTC (permalink / raw)
To: linux-hotplug
[-- Attachment #1: Type: text/plain, Size: 731 bytes --]
On Mon, 2004-09-13 at 01:56 +0200, Marco d'Itri wrote:
> Starting from udev 031, the %-arguments passed to PROGRAMs are not
> correct when the new udevstart code is being used.
>
> KERNEL="event[0-9]*", NAME="input/%k", PROGRAM="/etc/udev/inputdev.sh %k %n %M %m", RESULT="inputdev", MODE="0664", GROUP="video"
>
> generates this log (just echo $*):
>
> event0 0 13 64
> event0 0 13 64
> event0 0 13 64
>
> while the correct log (generated using the old shell script instead of
> udevstart) would be:
>
> event0 0 13 64
> event1 1 13 65
> event2 2 13 66
Yes, I can simulate this, please try the attached patch. I expect, that
it fixes it, cause we better not mangle the parsed config while matching
the rules.
Thanks,
Kay
[-- Attachment #2: udevstart-fix-01.patch --]
[-- Type: text/x-patch, Size: 735 bytes --]
===== namedev.c 1.144 vs edited =====
--- 1.144/namedev.c 2004-09-07 12:50:10 +02:00
+++ edited/namedev.c 2004-09-13 03:15:56 +02:00
@@ -813,10 +813,12 @@
/* execute external program */
if (dev->program[0] != '\0') {
+ char program[PROGRAM_SIZE];
+
dbg("check " FIELD_PROGRAM);
- apply_format(udev, dev->program, sizeof(dev->program),
- class_dev, sysfs_device);
- if (execute_program(dev->program, udev->program_result, NAME_SIZE) != 0) {
+ strfieldcpy(program, dev->program);
+ apply_format(udev, program, sizeof(program), class_dev, sysfs_device);
+ if (execute_program(program, udev->program_result, NAME_SIZE) != 0) {
dbg(FIELD_PROGRAM " returned nonzero");
goto try_parent;
} else {
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: udevstart badly broken in udev 031
2004-09-12 23:56 udevstart badly broken in udev 031 Marco d'Itri
2004-09-13 1:23 ` Kay Sievers
2004-09-13 6:15 ` Bob Barry
@ 2004-09-14 6:00 ` Greg KH
2 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2004-09-14 6:00 UTC (permalink / raw)
To: linux-hotplug
On Mon, Sep 13, 2004 at 03:23:58AM +0200, Kay Sievers wrote:
> On Mon, 2004-09-13 at 01:56 +0200, Marco d'Itri wrote:
> > Starting from udev 031, the %-arguments passed to PROGRAMs are not
> > correct when the new udevstart code is being used.
> >
> > KERNEL="event[0-9]*", NAME="input/%k", PROGRAM="/etc/udev/inputdev.sh %k %n %M %m", RESULT="inputdev", MODE="0664", GROUP="video"
> >
> > generates this log (just echo $*):
> >
> > event0 0 13 64
> > event0 0 13 64
> > event0 0 13 64
> >
> > while the correct log (generated using the old shell script instead of
> > udevstart) would be:
> >
> > event0 0 13 64
> > event1 1 13 65
> > event2 2 13 66
>
> Yes, I can simulate this, please try the attached patch. I expect, that
> it fixes it, cause we better not mangle the parsed config while matching
> the rules.
Thanks, I've applied this and released a 032 version with this fix and 2
others.
greg k-h
-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
^ permalink raw reply [flat|nested] 4+ messages in thread