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; } ------------------