From a14d40939de7d38029f99c10bc237bb68e83d119 Mon Sep 17 00:00:00 2001 From: Jie Liu Date: Wed, 16 Jul 2014 13:54:47 +1000 Subject: [PATCH] quota: fix NULL pointer dereference in report_f Run xfs_quota report against an invalid XFS path without desired quota limitation is enabled will hit SEGSEGV as fs_path is uninitialized, e.g. # xfs_quota -xc 'report -up' /invalid_path xfs_quota: cannot setup path for mount /invalid_path: No such file or directory Segmentation fault (core dumped) (gdb) r -xc 'report -up' /invalid_path xfs_quota: cannot setup path for mount /invalid_path: No such file or directory Program received signal SIGSEGV, Segmentation fault. 0x0000000000408b4d in report_f (argc=2, argv=0x105ea70) at report.c:627 627 else if (fs_path->fs_flags & FS_MOUNT_POINT) This patch fixes report_f() to only do report if the fs_path is initialized. Signed-off-by: Jie Liu Reviewed-by: Eric Sandeen Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner --- quota/report.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quota/report.c b/quota/report.c index 70894a2c5..8e3316ed4 100644 --- a/quota/report.c +++ b/quota/report.c @@ -624,7 +624,7 @@ report_f( if (flags & ALL_MOUNTS_FLAG) report_any_type(fp, form, type, NULL, lower, upper, flags); - else if (fs_path->fs_flags & FS_MOUNT_POINT) + else if (fs_path && (fs_path->fs_flags & FS_MOUNT_POINT)) report_any_type(fp, form, type, fs_path->fs_dir, lower, upper, flags); } else while (argc > optind) { -- 2.47.2