On Wed, Jul 22, 2026 at 06:42:41AM -0700, Joe Damato wrote: > On Mon, Jul 20, 2026 at 09:17:41AM -0700, Breno Leitao wrote: > > Now that sockopt_init_user() was already merged, builds a user-backed > > sockopt_t from the __user pair. A getsockopt leaf can then take > > a sockopt_t behind a thin __user wrapper: the wrapper builds it, calls > > the leaf, and writes the length back to optlen. The leaf copies with > > copy_to_iter() instead of copy_to_user(). > > > > Convert four more leaves the way udp and raw already were: ipv6 raw > > (do_rawv6_getsockopt), ieee802154 dgram, phonet pep, and tls > > (do_tls_getsockopt and its per-option helpers). > > > > Converting phonet surfaced a pre-existing bug: pep_getsockopt() clamps the > > length it reports but writes a full int with put_user(), overrunning an > > optval buffer shorter than sizeof(int). It is fixed in its own patch, with > > a Fixes: tag, before the phonet conversion, so it can be backported alone. > > > > The last patch adds getsockopt_iter selftest fixtures for rawv6, > > ieee802154, phonet and tls, checking the returned length and errno across > > exact, oversized and short buffers, an unknown optname and a bad level. > > > > For full motivation about these changes, please check the initial thread > > at link > > https://lore.kernel.org/all/[email protected]/#t > > > > Signed-off-by: Breno Leitao <[email protected]> > > --- > > Changes in v2: > > - Replace min_t() by umin() (David) > > - Link to v1: > > https://patch.msgid.link/[email protected] > > Other than the nit I mentioned about min vs min_t on the one patch, it looks > good overall to me, so for the series:
Thanks for the review, In fact, I'm using umin() rather than plain min() on purpose: opt->optlen is a signed int and sizeof(int) is size_t, so min() trips the signedness check unless the compiler can prove optlen >= 0. I don't think min() is correct here, it would be min_t() or umin(), I would say. --thanks breno

