Re: [PATCH] xfs: fix possible NULL dereference

Eric Sandeen
2013-10-21T20:58:26Z

On 10/21/13 1:32 PM, Geyslan G. Bem wrote:
> This patch puts a 'break' in the true branch, avoiding the 'icptr->ic_next'
> dereferencing.

Reviewed-by: Eric Sandeen <sandeen@redhat.com>

Hm, yeah - cmn_err(CE_PANIC, " " ); used to BUG_ON, but the newer
xfs_emerg() doesn't.

Dave, was that intentional?

I wonder if there are more spots after xfs_emerg()'s which aren't
defensive, because the code used to just panic there.

-Eric

> Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
> ---
> fs/xfs/xfs_log.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index a2dea108..8cdeb7e 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -3703,8 +3703,10 @@ xlog_verify_iclog(
> spin_lock(&log->l_icloglock);
> icptr = log->l_iclog;
> for (i=0; i < log->l_iclog_bufs; i++) {
> - if (icptr == NULL)
> + if (!icptr) {
> xfs_emerg(log->l_mp, "%s: invalid ptr", __func__);
> + break;
> + }
> icptr = icptr->ic_next;
> }
> if (icptr != log->l_iclog)