On 24/08/2022 21:08, Wolfram Sang wrote:
Hi Andy.

-       strlcpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
-       strlcpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);
+       strscpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN);
+       strscpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN);

Perhaps the size should be changed to GFS2_LOCKNAME_LEN to match the size of
the destination, too.

With that addition, this patch fixes this syzkaller report:

https://listman.redhat.com/archives/cluster-devel/2022-August/022755.html

Linus wrote another summary about strlcpy vs. strscpy use[1]. So, the
size argument should be the size of the smaller buffer if the buffers
are of different size. GFS2_LOCKNAME_LEN is smaller, so that looks
suitable. Shall I resend the patch with the suggested change?

Yes, please. I can't speak for the gfs2 maintainers but I think it would be a good plan, as the combination of strscpy and the size change fixes a bug.

Andy


All the best,

    Wolfram

[1] 
https://lore.kernel.org/lkml/CAHk-=wi+xbvq++uqw9ygwphjybhnb8a-xad+xp23-b+eodl...@mail.gmail.com/


Reply via email to