> On Sep 21, 2021, at 4:21 AM, Chaitanya Kulkarni <chaitanyak@xxxxxxxxxx> wrote: > > From: Chaitanya Kulkarni <kch@xxxxxxxxxx> > > Output defects can exist in sysfs content using sprintf and snprintf. > > sprintf does not know the PAGE_SIZE maximum of the temporary buffer > used for outputting sysfs content and it's possible to overrun the > PAGE_SIZE buffer length. > > Use a generic sysfs_emit function that knows that the size of the > temporary buffer and ensures that no overrun is done for dio > attribute. > > Signed-off-by: Chaitanya Kulkarni <kch@xxxxxxxxxx> > --- > drivers/block/loop.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/block/loop.c b/drivers/block/loop.c > index 63f64341c19c..fedb8d63b4c6 100644 > --- a/drivers/block/loop.c > +++ b/drivers/block/loop.c > @@ -882,7 +882,7 @@ static ssize_t loop_attr_dio_show(struct loop_device *lo, char *buf) > { > int dio = (lo->lo_flags & LO_FLAGS_DIRECT_IO); > > - return sprintf(buf, "%s\n", dio ? "1" : "0"); > + return sysfs_emit(buf, "%s\n", dio ? "1" : "0"); > } > > LOOP_ATTR_RO(backing_file); > -- > 2.29.0 > After fixing small nits noted in patch 1 you can add Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx> -- Himanshu Madhani Oracle Linux Engineering