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;