public inbox for linux-bcachefs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] bcachefs: avoid copy from NULL printbuf
@ 2024-09-24  2:52 David Disseldorp
  2024-09-25  2:21 ` Hongbo Li
  0 siblings, 1 reply; 4+ messages in thread
From: David Disseldorp @ 2024-09-24  2:52 UTC (permalink / raw)
  To: linux-bcachefs; +Cc: David Disseldorp

printbuf.buf may be NULL if allocation_failure is set. Check for this
prior to using it as a seq_puts() source.

Fixes: fa8e94faeece1 ("bcachefs: Heap allocate printbufs")
Signed-off-by: David Disseldorp <ddiss@suse.de>
---
test test

 fs/bcachefs/fs.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c
index 1aee5bafaae54..6e270bf24591d 100644
--- a/fs/bcachefs/fs.c
+++ b/fs/bcachefs/fs.c
@@ -1931,13 +1931,16 @@ static int bch2_show_options(struct seq_file *seq, struct dentry *root)
 {
 	struct bch_fs *c = root->d_sb->s_fs_info;
 	struct printbuf buf = PRINTBUF;
+	int ret = 0;
 
 	bch2_opts_to_text(&buf, c->opts, c, c->disk_sb.sb,
 			  OPT_MOUNT, OPT_HIDDEN, OPT_SHOW_MOUNT_STYLE);
 	printbuf_nul_terminate(&buf);
-	seq_puts(seq, buf.buf);
+	if (buf.allocation_failure)
+		ret = -ENOMEM;
+	else
+		seq_puts(seq, buf.buf);
 
-	int ret = buf.allocation_failure ? -ENOMEM : 0;
 	printbuf_exit(&buf);
 	return ret;
 }
-- 
2.46.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-09-26  1:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-24  2:52 [PATCH] bcachefs: avoid copy from NULL printbuf David Disseldorp
2024-09-25  2:21 ` Hongbo Li
2024-09-25  4:24   ` David Disseldorp
2024-09-26  1:53     ` Hongbo Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox