]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: Fix NULL pointer dereference in bch2_opt_to_text
authorMohammed Anees <pvmohammedanees2003@gmail.com>
Sat, 5 Oct 2024 13:02:29 +0000 (18:32 +0530)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 9 Oct 2024 20:42:53 +0000 (16:42 -0400)
This patch adds a bounds check to the bch2_opt_to_text function to prevent
NULL pointer dereferences when accessing the opt->choices array. This
ensures that the index used is within valid bounds before dereferencing.
The new version enhances the readability.

Reported-and-tested-by: syzbot+37186860aa7812b331d5@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=37186860aa7812b331d5
Signed-off-by: Mohammed Anees <pvmohammedanees2003@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/opts.c

index 232be8a44051ffcf6b75951827c465b9aedfab61..84097235eea9469506ef4dcfa07eba637d188210 100644 (file)
@@ -427,7 +427,9 @@ void bch2_opt_to_text(struct printbuf *out,
                        prt_printf(out, "%lli", v);
                break;
        case BCH_OPT_STR:
-               if (flags & OPT_SHOW_FULL_LIST)
+               if (v < opt->min || v >= opt->max - 1)
+                       prt_printf(out, "(invalid option %lli)", v);
+               else if (flags & OPT_SHOW_FULL_LIST)
                        prt_string_option(out, opt->choices, v);
                else
                        prt_str(out, opt->choices[v]);