summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Ulrich Niedermann <hun@n-dimensional.de>2007-12-17 11:50:19 +0100
committerHans Ulrich Niedermann <hun@n-dimensional.de>2007-12-17 11:50:19 +0100
commit34cbe3361df2419df5c6a5323e37437cfeba53d5 (patch)
tree4565423b01763084106e3be963868bf891afde25
parentdb45135065f71a27070171ebf4705468d29e48fa (diff)
downloade2tools-34cbe3361df2419df5c6a5323e37437cfeba53d5.tar.gz
e2tools-34cbe3361df2419df5c6a5323e37437cfeba53d5.tar.xz
e2tools-34cbe3361df2419df5c6a5323e37437cfeba53d5.zip
Avoid signed/unsigned comparison, and = in expr
This concludes the warning extermination exercise. Now the beast builds with CPPFLAGS="-Wall -Wextra -Werrror"!
-rw-r--r--read.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/read.c b/read.c
index 1d408f1..a9632ce 100644
--- a/read.c
+++ b/read.c
@@ -279,12 +279,11 @@ retrieve_data(ext2_filsys fs, ext2_ino_t src, int dest_fd,
*
*/
long
-read_to_eof(ext2_file_t infile, int dest_fd, ext2_off_t offset,
+read_to_eof(ext2_file_t infile, int UNUSED_PARM(dest_fd), ext2_off_t offset,
ext2_off_t *ret_pos)
{
char buf[4096];
unsigned int bytes_read;
- int bytes_written;
int retval;
if (offset != 0 &&
@@ -295,16 +294,19 @@ read_to_eof(ext2_file_t infile, int dest_fd, ext2_off_t offset,
}
/* read all that we can and dump it to the output file descriptor */
- do
+ while (1)
{
+ ssize_t bytes_written;
if ((retval = ext2fs_file_read(infile, buf, sizeof(buf), &bytes_read)))
{
fputs(error_message(retval), stderr);
return retval;
}
+ if (bytes_read <= 0) break;
+ bytes_written = write(dest_fd, buf, bytes_read);
+ if (bytes_written < 0) break;
+ if (bytes_read != (size_t)bytes_written) break;
}
- while (bytes_read > 0 &&
- bytes_read == (bytes_written = write(dest_fd, buf, bytes_read)));
if (bytes_read != 0)
{