=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/diff3/diff3prog.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** src/usr.bin/diff3/diff3prog.c 2016/10/18 21:06:52 1.19 --- src/usr.bin/diff3/diff3prog.c 2020/06/26 07:28:47 1.20 *************** *** 1,4 **** ! /* $OpenBSD: diff3prog.c,v 1.19 2016/10/18 21:06:52 millert Exp $ */ /* * Copyright (C) Caldera International Inc. 2001-2002. --- 1,4 ---- ! /* $OpenBSD: diff3prog.c,v 1.20 2020/06/26 07:28:47 stsp Exp $ */ /* * Copyright (C) Caldera International Inc. 2001-2002. *************** *** 555,563 **** printf("%da\n=======\n", de[n].old.to -1); (void)fseek(fp[2], (long)de[n].new.from, SEEK_SET); for (k = de[n].new.to-de[n].new.from; k > 0; k-= j) { j = k > BUFSIZ ? BUFSIZ : k; ! if (fread(block, 1, j, fp[2]) != j) trouble(); (void)fwrite(block, 1, j, stdout); } if (!oflag || !overlap[n]) --- 555,570 ---- printf("%da\n=======\n", de[n].old.to -1); (void)fseek(fp[2], (long)de[n].new.from, SEEK_SET); for (k = de[n].new.to-de[n].new.from; k > 0; k-= j) { + size_t r; j = k > BUFSIZ ? BUFSIZ : k; ! r = fread(block, 1, j, fp[2]); ! if (r == 0) { ! if (feof(fp[2])) ! break; trouble(); + } + if (r != j) + j = r; (void)fwrite(block, 1, j, stdout); } if (!oflag || !overlap[n])