write.c.p1b.REL=9.0-RELEASE.diff
9.1-RELEASE is near empty

*** 9.0-RELEASE/src/usr.bin/tar/write.c	Mon Oct 29 13:26:30 2012
--- new-generic/src/usr.bin/tar/write.c	Mon Oct 29 13:39:57 2012
***************
*** 1041,1052 ****
--- 1041,1085 ----
  		progress += bytes_written;
  		bytes_read = read(fd, bsdtar->buff, FILEDATABUFLEN);
  	}
+ #if 0	/* { Patch by JHS to 8.[012] */
+ 		if (bytes_read < 0)				// JHS
+ 			{					// JHS
+ 			perror(NULL) ;				// JHS
+ 			fprintf(stderr,"Read error.\n");	// JHS
+ 			// fprintf(stderr,"Read error on %s.\n",	// JHS
+ 			// Please pass in name as parameter to print. // JHS
+ 			//	"" ); 				// JHS
+ 			fprintf(stderr,				// JHS
+ 			 "Output will contain false trailing nulls.\n"); // JHS
+ 			fprintf(stderr,				// JHS
+ 				"File: %s, Line %d, Ret %d\n",	// JHS
+ 			 __FILE__, __LINE__, (int)bytes_read );	// JHS
+ 			return(-1) ;				// JHS
+ 			// I've not read code to see if caller 	// JHS
+ 			// appropriately detects & deals with -1 // JHS
+ 			// But Ive tested it, with		// JHS
+ 			// tar cvf junk.tar aa bb,		// JHS
+ 			// & if aa has dev errors,		// JHS
+ 			// bb does not get archived.		// JHS
+ 			}					// JHS
+ 	}
+ 	if (bytes_read < 0) 					// JHS
+ 		{						// JHS
+ 		perror(NULL) ;					// JHS
+ 		fprintf(stderr,"File: %s, Line %d\n", 		// JHS
+ 			__FILE__, __LINE__ ); 			// JHS
+ 		return(-1) ;					// JHS
+ 		// I've not read code to see if caller 		// JHS
+ 		// appropriately detects & deals with -1 	// JHS
+ 		}						// JHS
+ #else /* { 9.0-RELEASE */
  	if (bytes_read < 0) {
  		lafe_warnc(errno,
  			     "%s: Read error",
  			     archive_entry_pathname(entry));
  		bsdtar->return_value = 1;
  	}
+ #endif	/* } */
  	return 0;
  }
  
------------------
