diff options
author | Eric Sandeen <sandeen@sandeen.net> | 2015-02-24 02:12:55 +0300 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2015-02-24 02:12:55 +0300 |
commit | fc921566f4fcf4499e9a6d010391c00be199ab85 (patch) | |
tree | 36bac9731c9c57badb328b0721ec5d7c5d3375a8 /fs/xfs | |
parent | 5885ebda878b47c4b4602d4b0410cb4b282af024 (diff) | |
download | linux-fc921566f4fcf4499e9a6d010391c00be199ab85.tar.xz |
xfs: Ensure we have target_ip for RENAME_EXCHANGE
We shouldn't get here with RENAME_EXCHANGE set and no
target_ip, but let's be defensive, because xfs_cross_rename()
will dereference it.
Spotted by Coverity.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/xfs_inode.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index daafa1f6d260..6163767aa856 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2867,6 +2867,10 @@ xfs_rename( * Handle RENAME_EXCHANGE flags */ if (flags & RENAME_EXCHANGE) { + if (target_ip == NULL) { + error = -EINVAL; + goto error_return; + } error = xfs_cross_rename(tp, src_dp, src_name, src_ip, target_dp, target_name, target_ip, &free_list, &first_block, spaceres); |