Package: patchutils Version: 0.2.31-4 Severity: important File: /usr/bin/rediff
Hello, when I did rediff patches/28_io_eintr.patch~ patches/28_io_eintr.patch the program crashed with a message rediff: src/rediff.c:506: show_modified_hunk: Assertion `r != -1' failed. The files in question are attached. Regards Jiri Palecek -- System Information: Debian Release: lenny/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.23.9-debug (PREEMPT) Locale: LANG=cs_CZ, LC_CTYPE=cs_CZ (charmap=ISO-8859-2) (ignored: LC_ALL set to cs_CZ) Shell: /bin/sh linked to /bin/dash Versions of packages patchutils depends on: ii debianutils 2.23.1 Miscellaneous utilities specific t ii libc6 2.7-3 GNU C Library: Shared libraries ii patch 2.5.9-4 Apply a diff file to an original ii perl 5.8.8-12 Larry Wall's Practical Extraction patchutils recommends no packages.
Index: ltp-full-20080131/lib/tlibio.c =================================================================== --- ltp-full-20080131.orig/lib/tlibio.c 2008-03-08 18:54:40.000000000 +0100 +++ ltp-full-20080131/lib/tlibio.c 2008-03-08 20:01:31.000000000 +0100 @@ -694,11 +690,13 @@ printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall); } - if ((ret = write(fd, buffer, size)) == -1) { - sprintf(Errormsg, "%s/%d write(%d, buf, %d) ret:-1, errno=%d %s", - __FILE__, __LINE__, - fd, size, errno, strerror(errno)); - return -errno; + while ((ret = write(fd, buffer, size)) == -1) { + if(errno == EAGAIN || errno == EINTR) + continue; + sprintf(Errormsg, "%s/%d write(%d, buf, %d) ret:-1, errno=%d %s", + __FILE__, __LINE__, + fd, size, errno, strerror(errno)); + return -errno; } if ( ret != size ) { @@ -1213,7 +1211,9 @@ printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__, Lio_SysCall); } - if ((ret = read(fd, buffer, size)) == -1) { + while ((ret = read(fd, buffer, size)) == -1) { + if( errno == EINTR || errno== EAGAIN ) + continue; sprintf(Errormsg, "%s/%d read(%d, buf, %d) ret:-1, errno=%d %s", __FILE__, __LINE__, fd, size, errno, strerror(errno));
28_io_eintr.patch~
Description: application/trash