From: Jie Liu Date: Wed, 16 Jul 2014 03:54:47 +0000 (+1000) Subject: quota: fix NULL pointer dereference in report_f X-Git-Tag: v3.2.2~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a14d40939de7d38029f99c10bc237bb68e83d119;p=thirdparty%2Fxfsprogs-dev.git 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 --- 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) {