Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 fs/isofs/rock.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

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	Thu Jun  2 15:47:33 2005
+++ 25-akpm/fs/isofs/rock.c	Thu Jun  2 15:47:33 2005
@@ -212,12 +212,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'):
@@ -310,12 +310,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 */
@@ -688,12 +688,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'):
_