Re: [PATCH v2 2/3] fpga manager: framework core

From: Grant Likely
Date: Mon Dec 08 2014 - 12:56:55 EST


On Mon, Dec 8, 2014 at 5:50 PM, Grant Likely <grant.likely@xxxxxxxxxx> wrote:
> On Sat, 6 Dec 2014 14:55:33 +0100
> , Pavel Machek <pavel@xxxxxxx>
> wrote:
>> Hi!
>>
>> > > I am accustomed to doing 'echo -n' for most of sysfs anyway. Once in a
>> > > while I am a bonehead and forget the '-n' and spend a few minutes
>> > > wondering why this thing that worked last week suddenly rejects all
>> > > commands. I'm just trying to make my user interface a bit user-friendly.
>> > >
>> > > I will take out the '\n' stripping and update the documentation. I didn't
>> > > realize this would be controversial.
>> >
>> > Don't. You're doing the right thing by scrubbing your input. Requiring
>> > 'echo -n' is just stupid when it is so easy to make work easily.
>>
>> 'foo\nbar\n' is unusual but valid filename in linux. It is bad idea to
>> echo filenames into files in the first place... and arbitrarily
>> disallowing certain filenames is not helping.
>
> Meh. Just because it is a valid linux filename doesn't mean this
> interface is forced to accept it. There should be tighter rules about
> how the filename can be constructed. Allowing any arbitrary path for any
> arbitrary valid linux filename makes for a large attack surface.
>
> I would like to know, what is the purpose of the interface? Why is it
> important to provide the firmware filename in this manor? Are there
> going to be a lot of different FPGA bitstreams that may need to be
> loaded? How does userspace choose between them, and is there a better
> way to do the selection without passing the firmware filename through
> the kernel? Is this merely intended to get udev to behave in a certain
> way? If so, then maybe there is a better way to go about it.
>
> We could for example use a UDEV 'PROGRAM=' rule to execute a userspace
> app and have that program figure out which firmware file to provide to
> the kernel.

Correction, a 'RUN+=' rule is actually what I mean here. The PROGRAM=
tag is for executing a program to determine if a device matches.

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