Re: [PATCH 1/2] xfsdump: avoid segfault in partial_reg() in error case

Carlos Maiolino
2013-10-10T14:17:19Z

Looks good to me

Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>

On Tue, Oct 08, 2013 at 05:05:54PM -0500, Eric Sandeen wrote:
> If we go down the "/* Should never get here. */" path
> in partial_reg(), we issue a warning but then continue
> with the function. This calls pi_unlock() twice,
> but worse, uses a null isptr:
>
> if ( ! isptr ) {
> ... isptr is never set if we get to ...
> /* Should never get here. */
> pi_unlock();
> ...
> }
> ...
> /* Update this drive's entry */
> bsptr = &isptr->is_bs[d_index];
> if (bsptr->endoffset == 0) {
>
> From all appearances, because we unlock on that "never get
> here" path, it should just be returning after printing the
> warning. So add that, and we avoid the segfault.
>
> The previous fix to partial_reg() should prevent us from
> hitting this in the first place.
>
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---
>
> diff --git a/restore/content.c b/restore/content.c
> index 54d933c..cc49336 100644
> --- a/restore/content.c
> +++ b/restore/content.c
> @@ -9007,6 +9007,7 @@ partial_reg( ix_t d_index,
> #ifdef DEBUGPARTIALS
> dump_partials();
> #endif
> + return;
> }
>
> found:
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs

--
Carlos