From: Dan Carpenter <dan.carpenter@oracle.com>
To: Ben Myers <bpm@sgi.com>
Cc: Alex Elder <elder@kernel.org>,
kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org,
xfs@oss.sgi.com
Subject: [patch] xfs: check for underflow in xfs_iformat_fork()
Date: Thu, 15 Aug 2013 05:53:38 +0000 [thread overview]
Message-ID: <20130815055338.GC23580@elgon.mountain> (raw)
The "di_size" variable comes from the disk and it's a signed 64 bit.
We check the upper limit but we should check for negative numbers as
well.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/fs/xfs/xfs_inode_fork.c b/fs/xfs/xfs_inode_fork.c
index 123971b..849fc70 100644
--- a/fs/xfs/xfs_inode_fork.c
+++ b/fs/xfs/xfs_inode_fork.c
@@ -167,7 +167,8 @@ xfs_iformat_fork(
}
di_size = be64_to_cpu(dip->di_size);
- if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
+ if (unlikely(di_size < 0 ||
+ di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
xfs_warn(ip->i_mount,
"corrupt inode %Lu (bad size %Ld for local inode).",
(unsigned long long) ip->i_ino,
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: Ben Myers <bpm@sgi.com>
Cc: Alex Elder <elder@kernel.org>,
kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org,
xfs@oss.sgi.com
Subject: [patch] xfs: check for underflow in xfs_iformat_fork()
Date: Thu, 15 Aug 2013 08:53:38 +0300 [thread overview]
Message-ID: <20130815055338.GC23580@elgon.mountain> (raw)
The "di_size" variable comes from the disk and it's a signed 64 bit.
We check the upper limit but we should check for negative numbers as
well.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/fs/xfs/xfs_inode_fork.c b/fs/xfs/xfs_inode_fork.c
index 123971b..849fc70 100644
--- a/fs/xfs/xfs_inode_fork.c
+++ b/fs/xfs/xfs_inode_fork.c
@@ -167,7 +167,8 @@ xfs_iformat_fork(
}
di_size = be64_to_cpu(dip->di_size);
- if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
+ if (unlikely(di_size < 0 ||
+ di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
xfs_warn(ip->i_mount,
"corrupt inode %Lu (bad size %Ld for local inode).",
(unsigned long long) ip->i_ino,
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: Ben Myers <bpm@sgi.com>
Cc: Alex Elder <elder@kernel.org>,
xfs@oss.sgi.com, linux-kernel@vger.kernel.org,
kernel-janitors@vger.kernel.org
Subject: [patch] xfs: check for underflow in xfs_iformat_fork()
Date: Thu, 15 Aug 2013 08:53:38 +0300 [thread overview]
Message-ID: <20130815055338.GC23580@elgon.mountain> (raw)
The "di_size" variable comes from the disk and it's a signed 64 bit.
We check the upper limit but we should check for negative numbers as
well.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/fs/xfs/xfs_inode_fork.c b/fs/xfs/xfs_inode_fork.c
index 123971b..849fc70 100644
--- a/fs/xfs/xfs_inode_fork.c
+++ b/fs/xfs/xfs_inode_fork.c
@@ -167,7 +167,8 @@ xfs_iformat_fork(
}
di_size = be64_to_cpu(dip->di_size);
- if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
+ if (unlikely(di_size < 0 ||
+ di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
xfs_warn(ip->i_mount,
"corrupt inode %Lu (bad size %Ld for local inode).",
(unsigned long long) ip->i_ino,
next reply other threads:[~2013-08-15 5:53 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-15 5:53 Dan Carpenter [this message]
2013-08-15 5:53 ` [patch] xfs: check for underflow in xfs_iformat_fork() Dan Carpenter
2013-08-15 5:53 ` Dan Carpenter
2013-08-15 10:10 ` Jeff Liu
2013-08-15 10:10 ` Jeff Liu
2013-08-15 10:10 ` Jeff Liu
2013-08-15 14:37 ` Ben Myers
2013-08-15 14:37 ` Ben Myers
2013-08-15 14:37 ` Ben Myers
2013-08-15 15:47 ` Dan Carpenter
2013-08-15 15:47 ` Dan Carpenter
2013-08-15 15:47 ` Dan Carpenter
2013-08-15 22:26 ` Dave Chinner
2013-08-15 22:26 ` Dave Chinner
2013-08-15 22:26 ` Dave Chinner
2013-08-23 17:36 ` Ben Myers
2013-08-23 17:36 ` Ben Myers
2013-08-23 17:36 ` Ben Myers
2013-08-26 14:37 ` Dan Carpenter
2013-08-26 14:37 ` Dan Carpenter
2013-08-26 14:37 ` Dan Carpenter
2013-08-26 16:12 ` Ben Myers
2013-08-26 16:12 ` Ben Myers
2013-08-26 16:12 ` Ben Myers
2013-08-28 9:16 ` Jeff Liu
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=20130815055338.GC23580@elgon.mountain \
--to=dan.carpenter@oracle.com \
--cc=bpm@sgi.com \
--cc=elder@kernel.org \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=xfs@oss.sgi.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.