Changed NO_INT64 to INT64_IS_OFF_T because off_t might actually be
64 bits. The code now only complains if int64 is really too short.
This commit is contained in:
23
io.c
23
io.c
@@ -744,13 +744,14 @@ int64 read_longint(int f)
|
|||||||
if ((int32)ret != (int32)0xffffffff)
|
if ((int32)ret != (int32)0xffffffff)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef NO_INT64
|
#ifdef INT64_IS_OFF_T
|
||||||
rprintf(FERROR,"Integer overflow - attempted 64 bit offset\n");
|
if (sizeof (int64) < 8) {
|
||||||
exit_cleanup(RERR_UNSUPPORTED);
|
rprintf(FERROR, "Integer overflow: attempted 64-bit offset\n");
|
||||||
#else
|
exit_cleanup(RERR_UNSUPPORTED);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
readfd(f,b,8);
|
readfd(f,b,8);
|
||||||
ret = IVAL(b,0) | (((int64)IVAL(b,4))<<32);
|
ret = IVAL(b,0) | (((int64)IVAL(b,4))<<32);
|
||||||
#endif
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -1018,16 +1019,18 @@ void write_longint(int f, int64 x)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NO_INT64
|
#ifdef INT64_IS_OFF_T
|
||||||
rprintf(FERROR,"Integer overflow - attempted 64 bit offset\n");
|
if (sizeof (int64) < 8) {
|
||||||
exit_cleanup(RERR_UNSUPPORTED);
|
rprintf(FERROR, "Integer overflow: attempted 64-bit offset\n");
|
||||||
#else
|
exit_cleanup(RERR_UNSUPPORTED);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
write_int(f, (int32)0xFFFFFFFF);
|
write_int(f, (int32)0xFFFFFFFF);
|
||||||
SIVAL(b,0,(x&0xFFFFFFFF));
|
SIVAL(b,0,(x&0xFFFFFFFF));
|
||||||
SIVAL(b,4,((x>>32)&0xFFFFFFFF));
|
SIVAL(b,4,((x>>32)&0xFFFFFFFF));
|
||||||
|
|
||||||
writefd(f,b,8);
|
writefd(f,b,8);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_buf(int f,char *buf,size_t len)
|
void write_buf(int f,char *buf,size_t len)
|
||||||
|
|||||||
@@ -197,8 +197,9 @@ static void print_rsync_version(enum logcode f)
|
|||||||
get_panic_action());
|
get_panic_action());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_INT64
|
#ifdef INT64_IS_OFF_T
|
||||||
rprintf(f, "WARNING: no 64-bit integers on this platform!\n");
|
if (sizeof (int64) < 8)
|
||||||
|
rprintf(f, "WARNING: no 64-bit integers on this platform!\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
rprintf(f,
|
rprintf(f,
|
||||||
|
|||||||
Reference in New Issue
Block a user