All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Myers <bpm@sgi.com>
To: Rich Johnston <rjohnston@sgi.com>, Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Chandra Seetharaman <sekharan@us.ibm.com>, xfsprogs <xfs@oss.sgi.com>
Subject: Re: [PATCH] xfsprogs: fix Out-of-bounds access in repair/dinode.c
Date: Fri, 23 Aug 2013 11:38:28 -0500	[thread overview]
Message-ID: <20130823163828.GS5262@sgi.com> (raw)
In-Reply-To: <5214EFFF.4060105@sgi.com>

Hey Rich and Li Zhong,

On Wed, Aug 21, 2013 at 11:51:11AM -0500, Rich Johnston wrote:
> Looks good, thanks for the patch Li Zhong. it has been committed.
> 
> --Rich
> 
> Reviewed-by: Rich Johnston <rjohnston@sgi.com>
> 
> commit e7c05095f5baa9cd2e35a6de03d7dd9f51dd3910
> Author: Li Zhong <zhong@linux.vnet.ibm.com>
> Date:   Mon Aug 12 06:11:01 2013 +0000
> 
>     xfsprogs: fix Out-of-bounds access in repair/dinode.c
> 
> On 08/12/2013 01:11 AM, Li Zhong wrote:
> >Following is reported by coverity in bug 1061528:
> >
> >187                        __dirty_no_modify_ret(dirty);
> >
> >CID 1061528 (#1 of 1): Out-of-bounds access (OVERRUN)53. overrun-buffer-arg: Overrunning array "dinoc->di_pad" of 6 bytes by passing it to a function which accesses it at byte offset 15 using argument "16UL".
> >188                        memset(dinoc->di_pad, 0, 16);
> >
> >It seems that di_pad here should be di_pad2, as sekharan pointed out.
> >
> >Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
> >---
> >  repair/dinode.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> >diff --git a/repair/dinode.c b/repair/dinode.c
> >index e607f0b..94bf2f8 100644
> >--- a/repair/dinode.c
> >+++ b/repair/dinode.c
> >@@ -183,9 +183,9 @@ clear_dinode_core(struct xfs_mount *mp, xfs_dinode_t *dinoc, xfs_ino_t ino_num)
> >  	}
> >
> >  	for (i = 0; i < 16; i++) {
> >-		if (dinoc->di_pad[i] != 0) {
> >+		if (dinoc->di_pad2[i] != 0) {
> >  			__dirty_no_modify_ret(dirty);
> >-			memset(dinoc->di_pad, 0, 16);
> >+			memset(dinoc->di_pad2, 0, 16);
> >  			break;
> >  		}
> >  	}

We also discussed this issue a bit in this thread:
http://oss.sgi.com/archives/xfs/2013-08/msg00228.html

Looks like the loop itself is incorrect and should be removed, and Eric has
suggested that the conditional be changed to a memcmp in case the size of the
pad changes in the future.  Would either of you care to spin up another patch
to clean it up?

Thanks,
	Ben

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2013-08-23 16:38 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-12  6:11 [PATCH] xfsprogs: fix Out-of-bounds access in repair/dinode.c Li Zhong
2013-08-21 16:51 ` Rich Johnston
2013-08-23 16:38   ` Ben Myers [this message]
2013-08-26  2:15     ` Li Zhong
2013-08-26 16:51       ` Ben Myers
2013-08-27  1:57         ` Li Zhong
2013-08-26 17:20     ` Eric Sandeen
2013-08-26 17:40       ` Ben Myers
2013-08-27  2:01         ` Li Zhong
2013-08-27  1:58       ` Li Zhong
2013-10-18 16:28 ` Rich Johnston

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130823163828.GS5262@sgi.com \
    --to=bpm@sgi.com \
    --cc=rjohnston@sgi.com \
    --cc=sekharan@us.ibm.com \
    --cc=xfs@oss.sgi.com \
    --cc=zhong@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.