xfs
[Top] [All Lists]

[PATCH 11/11] xfsprogs: xfs_repair: fix possible null pointer dereferenc

To: xfs@xxxxxxxxxxx
Subject: [PATCH 11/11] xfsprogs: xfs_repair: fix possible null pointer dereference in mark_standalone_inodes
From: Vivek Trivedi <t.vivek@xxxxxxxxxxx>
Date: Wed, 02 Dec 2015 16:49:27 +0530
Cc: a.sahrawat@xxxxxxxxxxx, pankaj.m@xxxxxxxxxxx, Vivek Trivedi <t.vivek@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dlp-filter: Pass
In-reply-to: <1449055167-19936-1-git-send-email-t.vivek@xxxxxxxxxxx>
References: <1449055167-19936-1-git-send-email-t.vivek@xxxxxxxxxxx>
Fix possible null pointer dereference in mark_standalone_inodes by
rearranging and adding ASSERT for null irec.
Reported by coverity.

Signed-off-by: Vivek Trivedi <t.vivek@xxxxxxxxxxx>
---
 repair/phase6.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/repair/phase6.c b/repair/phase6.c
index e41bf20..1e5fc46 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
@@ -3088,11 +3088,11 @@ mark_standalone_inodes(xfs_mount_t *mp)
        irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, mp->m_sb.sb_rsumino),
                        XFS_INO_TO_AGINO(mp, mp->m_sb.sb_rsumino));
 
+       ASSERT(irec != NULL);
+
        offset = XFS_INO_TO_AGINO(mp, mp->m_sb.sb_rsumino) -
                        irec->ino_startnum;
 
-       ASSERT(irec != NULL);
-
        add_inode_reached(irec, offset);
 
        if (fs_quotas)  {
@@ -3101,6 +3101,7 @@ mark_standalone_inodes(xfs_mount_t *mp)
                        irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp,
                                                mp->m_sb.sb_uquotino),
                                XFS_INO_TO_AGINO(mp, mp->m_sb.sb_uquotino));
+                       ASSERT(irec != NULL);
                        offset = XFS_INO_TO_AGINO(mp, mp->m_sb.sb_uquotino)
                                        - irec->ino_startnum;
                        add_inode_reached(irec, offset);
@@ -3110,6 +3111,7 @@ mark_standalone_inodes(xfs_mount_t *mp)
                        irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp,
                                                mp->m_sb.sb_gquotino),
                                XFS_INO_TO_AGINO(mp, mp->m_sb.sb_gquotino));
+                       ASSERT(irec != NULL);
                        offset = XFS_INO_TO_AGINO(mp, mp->m_sb.sb_gquotino)
                                        - irec->ino_startnum;
                        add_inode_reached(irec, offset);
@@ -3119,6 +3121,7 @@ mark_standalone_inodes(xfs_mount_t *mp)
                        irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp,
                                                mp->m_sb.sb_pquotino),
                                XFS_INO_TO_AGINO(mp, mp->m_sb.sb_pquotino));
+                       ASSERT(irec != NULL);
                        offset = XFS_INO_TO_AGINO(mp, mp->m_sb.sb_pquotino)
                                        - irec->ino_startnum;
                        add_inode_reached(irec, offset);
-- 
1.7.9.5

<Prev in Thread] Current Thread [Next in Thread>