return 0;
}
-static int check_offset_overflow(off_t offset, size_t len)
+static int check_offset_overflow(off_t offset, uintmax_t len)
{
if (len > maximum_signed_value_of_type(off_t))
return error("unrepresentable length in delta: "
- "%"PRIuMAX" > OFF_MAX", (uintmax_t) len);
+ "%"PRIuMAX" > OFF_MAX", len);
if (signed_add_overflows(offset, (off_t) len))
return error("unrepresentable offset in delta: "
"%"PRIuMAX" + %"PRIuMAX" > OFF_MAX",
- (uintmax_t) offset, (uintmax_t) len);
+ (uintmax_t) offset, len);
return 0;
}
return -1;
if (off < view->off || off + width < view->off + view->width)
return error("invalid delta: window slides left");
- if (view->max_off >= 0 && view->max_off < off + width)
+ if (view->max_off >= 0 && view->max_off < off + (off_t) width)
return error("delta preimage ends early");
file_offset = view->off + view->buf.len;