Messages in this thread | | | From | "Shevchenko, Andriy" <> | Subject | VS: [PATCH] libfs: fix negative value support in simple_attr_write() | Date | Tue, 20 Sep 2022 12:48:03 +0000 |
| |
________________________________________ Lähettäjä: Andrew Morton <akpm@linux-foundation.org> Lähetetty: tiistai 20. syyskuuta 2022 0.24 Vastaanottaja: Eliav Farber Kopio: viro@zeniv.linux.org.uk; yangyicong@hisilicon.com; linux-fsdevel@vger.kernel.org; linux-kernel@vger.kernel.org; Shevchenko, Andriy; hhhawa@amazon.com; jonnyc@amazon.com; Akinobu Mita Aihe: Re: [PATCH] libfs: fix negative value support in simple_attr_write()
On Sun, 18 Sep 2022 13:50:36 +0000 Eliav Farber <farbere@amazon.com> wrote:
> After commit 488dac0c9237 ("libfs: fix error cast of negative value in > simple_attr_write()"), a user trying set a negative value will get a > '-EINVAL' error, because simple_attr_write() was modified to use > kstrtoull() which can handle only unsigned values, instead of > simple_strtoll(). > > This breaks all the places using DEFINE_DEBUGFS_ATTRIBUTE() with format > of a signed integer. > > The u64 value which attr->set() receives is not an issue for negative > numbers. > The %lld and %llu in any case are for 64-bit value. Representing it as > unsigned simplifies the generic code, but it doesn't mean we can't keep > their signed value if we know that. > > This change basically reverts the mentioned commit, but uses kstrtoll() > instead of simple_strtoll() which is obsolete. >
https://lkml.kernel.org/r/20220919172418.45257-1-akinobu.mita@gmail.com addresses the same thing.
Should the final version of this fix be backported into -stable trees?
Oh, this rises the question, why the heck we even have the format parameter to those macros? Seems to me like a (hackish) workaround against the known issue which was introduced by the previously mentioned change.
| |