xfs
[Top] [All Lists]

Re: [PATCH v2] xfs: prevent leaking uninitialized stack memory in FSGEOM

To: Dan Rosenberg <drosenberg@xxxxxxxxxxxxx>
Subject: Re: [PATCH v2] xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1
From: Eugene Teo <eugeneteo@xxxxxxxxx>
Date: Tue, 15 Feb 2011 07:39:53 +0800
Cc: Dave Chinner <david@xxxxxxxxxxxxx>, aelder@xxxxxxx, xfs-masters@xxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, stable@xxxxxxxxxx, security@xxxxxxxxxx
In-reply-to: <1297691128.1857.4.camel@dan>
References: <1297347904.13370.9.camel@dan> <20110214114629.GA13052@dastard> <1297691128.1857.4.camel@dan>
On Mon, Feb 14, 2011 at 9:45 PM, Dan Rosenberg <drosenberg@xxxxxxxxxxxxx> wrote:
> The FSGEOMETRY_V1 ioctl (and its compat equivalent) calls out to
> xfs_fs_geometry() with a version number of 3.  This code path does not
> fill in the logsunit member of the passed xfs_fsop_geom_t, leading to
> the leaking of four bytes of uninitialized stack data to potentially
> unprivileged callers.
>
> v2 switches to memset() to avoid future issues if structure members
> change, on suggestion of Dave Chinner.
>
> Signed-off-by: Dan Rosenberg <drosenberg@xxxxxxxxxxxxx>

Reviewed-by: Eugene Teo <eugeneteo@xxxxxxxxxx>

> ---
>  fs/xfs/xfs_fsops.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
> index cec89dd..85668ef 100644
> --- a/fs/xfs/xfs_fsops.c
> +++ b/fs/xfs/xfs_fsops.c
> @@ -53,6 +53,9 @@ xfs_fs_geometry(
>        xfs_fsop_geom_t         *geo,
>        int                     new_version)
>  {
> +
> +       memset(geo, 0, sizeof(*geo));
> +
>        geo->blocksize = mp->m_sb.sb_blocksize;
>        geo->rtextsize = mp->m_sb.sb_rextsize;
>        geo->agblocks = mp->m_sb.sb_agblocks;
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

<Prev in Thread] Current Thread [Next in Thread>