diff --git a/lib/read.c b/lib/read.c index 3a1c9f23..dd6af726 100644 --- a/lib/read.c +++ b/lib/read.c @@ -30,6 +30,7 @@ do_read (int s, void *ptr, size_t total_size) { int nread; size_t already_read = 0, remaining = total_size; + char *tmp_ptr; while (already_read < total_size) { nread = recv (s, ptr, remaining, 0); @@ -46,7 +47,10 @@ do_read (int s, void *ptr, size_t total_size) already_read += nread; remaining -= nread; - (char *) ptr += nread; + /* (char *) ptr += nread; */ + tmp_ptr = ptr; + tmp_ptr += nread; + ptr = tmp_ptr; } } diff --git a/src/daemon/io.c b/src/daemon/io.c index 1dc72aa3..aa38dd40 100644 --- a/src/daemon/io.c +++ b/src/daemon/io.c @@ -62,6 +62,7 @@ int do_read (int s, void *ptr, size_t total_size) { int nread; + char *tmp_ptr; size_t already_read = 0, remaining = total_size; while (already_read < total_size) { @@ -82,7 +83,10 @@ do_read (int s, void *ptr, size_t total_size) already_read += nread; remaining -= nread; - (char *) ptr += nread; + /* (char *) ptr += nread; */ + tmp_ptr = ptr; + tmp_ptr += nread; + ptr = tmp_ptr; #ifdef REAL_DEBUG fprintf (stderr, "READ (%d): %d - %d - %d\n",