From: Eric Sandeen Date: Thu, 22 Dec 2016 05:10:54 +0000 (-0600) Subject: xfs_quota: Fix test for wrapped id from GETNEXTQUOTA X-Git-Tag: v4.9.0-rc1~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c89be81f59eff914f8c6331e4928d3d38c6e6571;p=thirdparty%2Fxfsprogs-dev.git xfs_quota: Fix test for wrapped id from GETNEXTQUOTA dump_file and report_mount can be called with null *oid if we aren't asking for the GETNEXTQUOTA interface, so we should only test for the GETNEXTQUOTA wrap if *oid is non-null. Otherwise we'll deref a null pointer in the test. This only happens for certain invocations of reporting, which apparently are not covered by any regression tests at this point, at least on new kernels which contain GETNEXTQUOTA. Addresses-Coverity-ID: 1397415 Addresses-Coverity-ID: 1397416 Brown-paper-bag-worn-by: Eric Sandeen Signed-off-by: Eric Sandeen Reviewed-by: Bill O'Donnell Signed-off-by: Eric Sandeen --- diff --git a/quota/report.c b/quota/report.c index fc023028f..3833dd6e8 100644 --- a/quota/report.c +++ b/quota/report.c @@ -98,12 +98,12 @@ dump_file( return 0; } - if (oid) + if (oid) { *oid = d.d_id; - - /* Did kernelspace wrap? */ - if (*oid < id) - return 0; + /* Did kernelspace wrap? */ + if (*oid < id) + return 0; + } if (!d.d_blk_softlimit && !d.d_blk_hardlimit && !d.d_ino_softlimit && !d.d_ino_hardlimit && @@ -361,12 +361,12 @@ report_mount( return 0; } - if (oid) + if (oid) { *oid = d.d_id; - - /* Did kernelspace wrap? */ - if (*oid < id) - return 0; + /* Did kernelspace wrap? */ + if (* oid < id) + return 0; + } if (flags & TERSE_FLAG) { count = 0;