if (!datum_len && !extra_len)
extra_len = 1; /* request non-zero amount of memory */
- if (datum_len + extra_len < datum_len /* checks for overflow */
- || !(ptr = new_array(char, datum_len + extra_len)))
+ if (datum_len + extra_len < datum_len)
+ overflow_exit("get_xattr_data");
+ if (!(ptr = new_array(char, datum_len + extra_len)))
out_of_memory("get_xattr_data");
if (datum_len) {
int count = sxp->xattr->count;
write_varint(f, count);
for (rxa = sxp->xattr->items; count--; rxa++) {
- int name_len = rxa->name_len;
+ size_t name_len = rxa->name_len;
const char *name = rxa->name;
/* Strip the rsync prefix from disguised namespaces. */
- if (
+ if (name_len > RPRE_LEN
#ifdef HAVE_LINUX_XATTRS
- am_root < 0
+ && am_root < 0
#endif
- && name_len > RPRE_LEN && name[RPRE_LEN] != '%'
- && HAS_PREFIX(name, RSYNC_PREFIX)) {
+ && name[RPRE_LEN] != '%' && HAS_PREFIX(name, RSYNC_PREFIX)) {
name += RPRE_LEN;
name_len -= RPRE_LEN;
}
rxa->datum_len = read_varint(f_in);
if (rxa->name_len + rxa->datum_len < rxa->name_len)
- out_of_memory("recv_xattr_request"); /* overflow */
+ overflow_exit("recv_xattr_request");
rxa->datum = new_array(char, rxa->datum_len + rxa->name_len);
if (!rxa->datum)
out_of_memory("recv_xattr_request");
size_t datum_len = read_varint(f);
size_t dget_len = datum_len > MAX_FULL_DATUM ? 1 + MAX_DIGEST_LEN : datum_len;
size_t extra_len = MIGHT_NEED_RPRE ? RPRE_LEN : 0;
- if (dget_len + extra_len < dget_len)
- out_of_memory("receive_xattr"); /* overflow */
- if (dget_len + extra_len + name_len < dget_len)
- out_of_memory("receive_xattr"); /* overflow */
+ if ((dget_len + extra_len < dget_len)
+ || (dget_len + extra_len + name_len < dget_len))
+ overflow_exit("receive_xattr");
ptr = new_array(char, dget_len + extra_len + name_len);
if (!ptr)
out_of_memory("receive_xattr");
ssize_t list_len;
size_t i, len;
char *name, *ptr, sum[MAX_DIGEST_LEN];
- int name_len, ret = 0;
+ size_t name_len;
+ int ret = 0;
/* This puts the current name list into the "namebuf" buffer. */
if ((list_len = get_xattr_names(fname)) < 0)