Correct the off_t/size_t max_to_write overflow check.

This commit is contained in:
Andrew Wood
2026-05-15 23:42:49 +01:00
parent d546e90a94
commit 1a00a7fdf5
+3 -1
View File
@@ -428,8 +428,10 @@ static ssize_t pv__transfer__splice_repeated(pvstate_t state, int input_fd, int
bytes_to_splice = count;
/*@-unrecog@ */
if ((state->control.rate_limit_active || max_to_write != 0)
&& (max_to_write <= (off_t) SIZE_MAX && bytes_to_splice > (size_t) max_to_write))
&& (max_to_write >= 0) && ((unsigned long) max_to_write <= (unsigned long) SIZE_MAX)
&& ((off_t) bytes_to_splice > max_to_write)) {
bytes_to_splice = (size_t) max_to_write;
}
/*@+unrecog@ *//* splint doesn't know of SIZE_MAX. */
/* Early return with 0 if the transfer cap is zero. */