[Lguest] [PATCH] lguest: explicitly setup /dev/lguest private_data

Rusty Russell rusty at rustcorp.com.au
Fri Apr 10 13:28:35 AEST 2015


Greg KH <gregkh at linuxfoundation.org> writes:
> On Tue, Apr 07, 2015 at 10:18:18AM +0200, Tom Van Braeckel wrote:
>> The private_data member of the /dev/lguest device file is used to hold
>> the current struct lguest and needs to be set to NULL to signify that
>> no initialization has taken place.
>> 
>> We explicitly set it to NULL to be independent of whatever value the
>> misc subsystem initializes it to.
>> 
>> Signed-off-by: Tom Van Braeckel <tomvanbraeckel at gmail.com>
>> ---
>> Backstory:
>> ==========
>> The misc subsystem used to initialize a file's private_data to point to
>> the misc device when a driver had registered a custom open file
>> operation and initialized it to NULL when a custom open file operation
>> had *not* been provided.
>> 
>> This subtle quirk was confusing, to the point where kernel code
>> registered *empty* file open operations to have private_data point to
>> the misc device structure.
>> 
>> And it lead to bugs, where the addition or removal of a custom open
>> file operation surprisingly changed the initial contents of a file's
>> private_data structure.
>> 
>> The misc subsystem is currently underdoing changes to *always* set
>> private_data to point to the misc device instead of only doing this
>> when a custom open file operation has been registered.
>> 
>> Intel's 0day kernel testing robot discovered that the lguest driver
>> depended on it implicitly being initialized to NULL, as Fengguang Wu
>> reported. Thanks a lot for all the hard work!
>> 
>>  drivers/lguest/lguest_user.c | 14 +++++++++++++-
>>  1 file changed, 13 insertions(+), 1 deletion(-)
>
> I can take this through my char-misc tree, where this misc core change
> was, if the lguest maintainer (i.e. Rusty) acks it.

Acked-by: Rusty Russell <rusty at rustcorp.com.au>

Cheers,
Rusty.


More information about the Lguest mailing list