final change needed to get rsync working on a CRAY J90
[rsync/rsync.git] / io.c
diff --git a/io.c b/io.c
index 5122a2a..9f6b228 100644 (file)
--- a/io.c
+++ b/io.c
@@ -270,8 +270,12 @@ static void readfd(int fd,char *buffer,int N)
 int32 read_int(int f)
 {
        char b[4];
+       int32 ret;
+
        readfd(f,b,4);
-       return IVAL(b,0);
+       ret = IVAL(b,0);
+       if (ret == (int32)0xffffffff) return -1;
+       return ret;
 }
 
 int64 read_longint(int f)
@@ -281,7 +285,9 @@ int64 read_longint(int f)
        char b[8];
        ret = read_int(f);
 
-       if ((int32)ret != (int32)0xffffffff) return ret;
+       if ((int32)ret != (int32)0xffffffff) {
+               return ret;
+       }
 
 #ifdef NO_INT64
        rprintf(FERROR,"Integer overflow - attempted 64 bit offset\n");
@@ -471,7 +477,7 @@ void write_longint(int f, int64 x)
                return;
        }
 
-       write_int(f, -1);
+       write_int(f, (int32)0xFFFFFFFF);
        SIVAL(b,0,(x&0xFFFFFFFF));
        SIVAL(b,4,((x>>32)&0xFFFFFFFF));