reader: move error check in validate

The method can report the error and return
a bit earlier if there is a problem.

Change-Id: Icf6c258cb0f994cebc7a717e1e28e7b6ec95dd60
Reviewed-on: https://go-review.googlesource.com/15908
Reviewed-by: Andrew Gerrand <adg@golang.org>
diff --git a/reader/validate.go b/reader/validate.go
index 6b4125e..c60f94f 100644
--- a/reader/validate.go
+++ b/reader/validate.go
@@ -15,6 +15,10 @@
 	i, o := 0, 0
 	for ; i < 1<<20 && o < 1<<20; i++ { // test 1mb
 		n, err := r.Read(b)
+		if err != nil {
+			fmt.Fprintf(os.Stderr, "read error: %v\n", err)
+			return
+		}
 		for i, v := range b[:n] {
 			if v != 'A' {
 				fmt.Fprintf(os.Stderr, "got byte %x at offset %v, want 'A'\n", v, o+i)
@@ -22,10 +26,6 @@
 			}
 		}
 		o += n
-		if err != nil {
-			fmt.Fprintf(os.Stderr, "read error: %v\n", err)
-			return
-		}
 	}
 	if o == 0 {
 		fmt.Fprintf(os.Stderr, "read zero bytes after %d Read calls\n", i)