fs/xfs/xfs_vnodeops.c:xfs_readdir(): NULL variable dereferenced

Adrian Bunk
2006-07-06T21:13:22Z

The Coverity checker spotted the following:

<-- snip -->

...
STATIC int
xfs_readdir(
bhv_desc_t *dir_bdp,
uio_t *uiop,
cred_t *credp,
int *eofp)
{
xfs_inode_t *dp;
xfs_trans_t *tp = NULL;
int error = 0;
uint lock_mode;

vn_trace_entry(BHV_TO_VNODE(dir_bdp), __FUNCTION__,
(inst_t *)__return_address);
dp = XFS_BHVTOI(dir_bdp);

if (XFS_FORCED_SHUTDOWN(dp->i_mount))
return XFS_ERROR(EIO);

lock_mode = xfs_ilock_map_shared(dp);
error = xfs_dir_getdents(tp, dp, uiop, eofp);
xfs_iunlock_map_shared(dp, lock_mode);
return error;
}
...

<-- snip -->

Note that tp is never assigned any value other than NULL (and the
Coverity checker found a way how tp might be dereferenced four function
calls later).

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed