On Thu, May 21, 2026 at 06:33:14AM -0700, Kees Cook wrote: > ret = min(ret, (int)(PAGE_SIZE - 1 - off)); > if (!ret) > break;
One question about the truncation behavior here: when an element does not fully fit in the remaining buffer, this min() can cause only part of that element to be copied. For example, if the remaining space is 4 bytes and the next element produces "123456789\n", the resulting output could contain only "1234". This leaves the reader with no way to distinguish a genuinely short value from one that was truncated due to the PAGE_SIZE limit, while the array otherwise still looks like a normal comma-separated list. Is this partial-element truncation intentional for this patch, or is the expectation that it gets handled as part of the later seq_buf conversion? Would it be preferable to avoid copying an element unless it fits completely, and leave the larger-buffer case to be addressed later in the series?
