Re: [PATCH] libfs: fix simple_attr_write on 32bit machine

From: Akinobu Mita
Date: Tue Aug 23 2011 - 11:05:14 EST


2011/8/23 Greg KH <greg@xxxxxxxxx>:
> On Sat, Jul 09, 2011 at 02:00:26PM +0900, Akinobu Mita wrote:
>> Assume that /sys/kernel/debug/dummy64 is debugfs file created by
>> debugfs_create_x64().
>>
>>       # cd /sys/kernel/debug
>>       # echo 0x1234567812345678 > dummy64
>>       # cat dummy64
>>       0x0000000012345678
>>
>>       # echo 0x80000000 > dummy64
>>       # cat dummy64
>>       0xffffffff80000000
>>
>> The value more than INT_MAX cannot be written to the debugfs file
>> created by debugfs_create_u64 or debugfs_create_x64 on 32bit machine.
>> Because simple_attr_write() uses simple_strtol() for the conversion.
>>
>> To fix this, use simple_strtoll() instead.
>>
>> Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxx>
>
> Do we have any debugfs files that need this change in the tree now for
> 3.1 or newer?

This patch has already been merged into 3.0. Some files are created
debugfs_create_[ux]64 with write permission and affected by this bug.

hwpoison/corrupt-filter-flags-mask
hwpoison/corrupt-filter-flags-value
hwpoison/corrupt-filter-memcg
apei/einj/param1
apei/einj/param2
--
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/