Carlos Maiolino
b52a360b2a
xfs: Fix possible memory corruption in xfs_readlink
...
Fixes a possible memory corruption when the link is larger than
MAXPATHLEN and XFS_DEBUG is not enabled. This also remove the
S_ISLNK assert, since the inode mode is checked previously in
xfs_readlink_by_handle() and via VFS.
Updated to address concerns raised by Ben Hutchings about the loose
attention paid to 32- vs 64-bit values, and the lack of handling a
potentially negative pathlen value:
- Changed type of "pathlen" to be xfs_fsize_t, to match that of
ip->i_d.di_size
- Added checking for a negative pathlen to the too-long pathlen
test, and generalized the message that gets reported in that case
to reflect the change
As a result, if a negative pathlen were encountered, this function
would return EFSCORRUPTED (and would fail an assertion for a debug
build)--just as would a too-long pathlen.
Signed-off-by: Alex Elder <aelder@sgi.com>
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2011-11-08 10:48:23 -06:00
..
2010-10-05 12:16:37 +02:00
2011-08-12 16:21:35 -05:00
2011-09-15 15:08:18 +02:00
2011-08-22 16:37:24 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-01 02:35:04 -04:00
2011-07-25 15:03:13 -05:00
2011-07-13 13:43:50 +02:00
2011-10-11 21:15:09 -05:00
2011-05-24 11:17:22 -05:00
2011-10-31 17:30:46 -07:00
2011-10-11 21:15:01 -05:00
2011-10-11 21:15:03 -05:00
2010-01-20 10:47:48 +11:00
2011-10-11 21:15:10 -05:00
2010-01-20 10:47:48 +11:00
2011-07-13 13:43:50 +02:00
2010-01-15 15:31:38 -06:00
2011-10-11 21:15:08 -05:00
2011-10-11 21:15:07 -05:00
2011-10-11 21:15:09 -05:00
2011-07-25 15:03:13 -05:00
2011-10-17 15:42:02 -05:00
2010-12-16 16:05:22 -06:00
2011-10-11 22:34:31 -05:00
2011-10-11 21:15:11 -05:00
2011-10-11 21:15:09 -05:00
2011-07-13 13:43:50 +02:00
2011-10-11 21:15:08 -05:00
2010-01-15 15:31:23 -06:00
2011-07-25 15:03:13 -05:00
2011-07-13 13:43:48 +02:00
2011-07-13 13:43:48 +02:00
2011-07-13 13:43:48 +02:00
2011-10-11 21:15:03 -05:00
2011-07-25 13:56:39 -07:00
2011-07-13 13:43:48 +02:00
2011-07-13 13:43:48 +02:00
2011-07-26 15:05:16 -04:00
2011-07-13 13:43:48 +02:00
2011-10-11 21:15:07 -05:00
2011-08-12 16:21:35 -05:00
2011-10-11 11:02:48 -05:00
2011-08-12 16:21:35 -05:00
2011-10-11 21:15:09 -05:00
2011-08-12 16:21:35 -05:00
2011-03-07 10:08:35 +11:00
2011-03-07 10:09:35 +11:00
2011-10-11 21:15:08 -05:00
2011-08-12 16:21:35 -05:00
2011-01-28 09:01:33 -06:00
2010-12-20 11:59:49 +11:00
2011-10-11 21:15:09 -05:00
2011-10-11 21:15:06 -05:00
2010-07-26 13:16:51 -05:00
2011-08-12 16:21:35 -05:00
2011-07-08 11:32:51 -05:00
2011-10-11 21:15:01 -05:00
2011-01-11 20:28:17 -06:00
2011-08-12 16:21:35 -05:00
2011-07-13 13:43:50 +02:00
2011-10-11 21:15:09 -05:00
2009-09-01 12:45:39 -05:00
2011-10-11 21:15:01 -05:00
2011-10-17 15:42:02 -05:00
2010-07-26 13:16:36 -05:00
2011-10-11 21:15:10 -05:00
2011-10-11 21:15:01 -05:00
2011-07-08 14:35:03 +02:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-10-11 21:15:08 -05:00
2011-08-12 16:21:35 -05:00
2011-10-11 21:15:08 -05:00
2010-12-16 16:05:51 -06:00
2011-11-02 12:53:43 +01:00
2011-08-12 16:21:35 -05:00
2011-04-08 08:09:12 -05:00
2010-06-24 11:35:17 +10:00
2011-10-11 11:02:49 -05:00
2011-05-24 11:17:13 -05:00
2011-04-28 13:18:04 -05:00
2011-10-11 21:15:11 -05:00
2010-05-24 10:33:39 -05:00
2011-10-11 21:15:10 -05:00
2011-04-28 13:18:04 -05:00
2011-08-12 16:21:35 -05:00
2011-10-31 17:30:54 -07:00
2011-10-11 21:15:11 -05:00
2011-07-20 18:35:03 -05:00
2011-02-01 11:42:43 +01:00
2010-01-15 15:34:22 -06:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-10-11 21:15:08 -05:00
2011-10-11 21:15:11 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-03-07 10:01:35 +11:00
2011-08-12 16:21:35 -05:00
2011-10-11 21:15:08 -05:00
2011-10-11 21:15:08 -05:00
2011-07-25 15:03:13 -05:00
2011-10-11 21:15:10 -05:00
2011-10-11 21:15:10 -05:00
2011-07-25 15:03:13 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-10-17 15:42:02 -05:00
2011-08-12 16:21:35 -05:00
2011-10-11 21:15:11 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-08-12 16:21:35 -05:00
2011-10-18 15:12:04 -05:00
2011-10-18 15:12:04 -05:00
2011-10-11 21:15:10 -05:00
2011-08-12 16:21:35 -05:00
2010-12-20 11:59:49 +11:00
2011-10-11 21:15:08 -05:00
2011-10-17 15:42:02 -05:00
2011-10-11 21:15:08 -05:00
2011-10-17 15:42:02 -05:00
2011-04-28 13:18:04 -05:00
2010-10-18 15:08:06 -05:00
2010-10-18 15:08:06 -05:00
2011-08-12 16:21:35 -05:00
2011-11-08 10:48:23 -06:00
2011-07-08 14:34:23 +02:00
2011-08-12 16:21:35 -05:00
2011-08-12 13:57:55 -05:00