On 4:23:36 pm 03/25/05 Andrew Morton <[EMAIL PROTECTED]> wrote:
> Andrew Morton <[EMAIL PROTECTED]> wrote:
> >
> >  It's the new rock-ridge bounds checking.
>
> Try this, please?
>
> diff -puN fs/isofs/rock.c~rock-handle-directory-overflows-fix
> fs/isofs/rock.c --- 25/fs/isofs/rock.c~rock-handle-directory-overflows
> -fix    Fri Mar 25 14:21:32 2005
> +++ 25-akpm/fs/isofs/rock.c    Fri Mar 25 14:22:01 2005
> @@ -218,12 +218,12 @@ repeat:
>          if (rr->len < 3)
>              goto out;    /* Something got screwed up here */
>          sig = isonum_721(rs.chr);
> +        if (rock_check_overflow(&rs, sig))
> +            goto eio;
>          rs.chr += rr->len;
>          rs.len -= rr->len;
>          if (rs.len < 0)
>              goto eio;    /* corrupted isofs */
> -        if (rock_check_overflow(&rs, sig))
> -            goto eio;
>
>          switch (sig) {
>          case SIG('R', 'R'):
> @@ -316,12 +316,12 @@ repeat:
>          if (rr->len < 3)
>              goto out;    /* Something got screwed up here */
>          sig = isonum_721(rs.chr);
> +        if (rock_check_overflow(&rs, sig))
> +            goto eio;
>          rs.chr += rr->len;
>          rs.len -= rr->len;
>          if (rs.len < 0)
>              goto eio;    /* corrupted isofs */
> -        if (rock_check_overflow(&rs, sig))
> -            goto eio;
>
>          switch (sig) {
>  #ifndef CONFIG_ZISOFS        /* No flag for SF or ZF */
> @@ -694,12 +694,12 @@ repeat:
>          if (rr->len < 3)
>              goto out;    /* Something got screwed up here */
>          sig = isonum_721(rs.chr);
> +        if (rock_check_overflow(&rs, sig))
> +            goto out;
>          rs.chr += rr->len;
>          rs.len -= rr->len;
>          if (rs.len < 0)
>              goto out;    /* corrupted isofs */
> -        if (rock_check_overflow(&rs, sig))
> -            goto out;
>
>          switch (sig) {
>          case SIG('R', 'R'):
> _

This fixes it here.

\__  Jason Munro
 \__ [EMAIL PROTECTED]
  \__ http://hastymail.sourceforge.net/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to