An unnoticed write error is unlikely to cause major problems, since the process on the other end still has a chance to notice the mangled stream. But it is worth fixing, especially because the writing end can give a better error message.
Signed-off-by: Jonathan Nieder <[email protected]> --- lib/dpkg/compression-backend.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/lib/dpkg/compression-backend.c b/lib/dpkg/compression-backend.c index edd28b5..112b817 100644 --- a/lib/dpkg/compression-backend.c +++ b/lib/dpkg/compression-backend.c @@ -102,6 +102,8 @@ default_memlimit() zFile zfile = zdopen(fd_in, "r"); \ \ while ((actualread = zread(zfile, buffer, sizeof(buffer)))) { \ + int actualwrite; \ + \ if (actualread < 0) { \ int err = 0; \ const char *errmsg = zerror(zfile, &err); \ @@ -111,7 +113,11 @@ default_memlimit() ohshit(_("%s: internal " format " error: %s: %s"), \ desc, "read", errmsg); \ } \ - write(fd_out, buffer, actualread); \ + \ + actualwrite = write(fd_out, buffer, actualread); \ + if (actualwrite != actualread) \ + ohshite(_("%s: internal " format " error: %s"), \ + desc, "write"); \ } \ exit(0); \ } while(0) -- 1.6.5.rc1.199.g596ec -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

