Re: [PATCH net-next v3 0/4] net: move .getsockopt away from __user buffers

Breno Leitao
2026-04-10T12:53:15Z

Hello Stanislav,

On Wed, Apr 08, 2026 at 10:02:36AM -0700, Stanislav Fomichev wrote:
> On 04/08, Breno Leitao wrote:
>
> LGTM! Not sure what's your plan for the selftest? You wanna keep it
> outside or maybe repost v4 with it?

I'd be glad to include a selftest. I've already developed one covering both
protocols in this series and can respin with it if you'd like.

Test available at:
https://github.com/leitao/linux/commit/2d9311947061f1baa43858f597dd6c54d7ccc5d2

> Acked-by: Stanislav Fomichev <sdf@fomichev.me>

Thanks for the review and guidance.

> I'm also not sure your unconditional 'copy-optlen-back' will work for every
> proto, but I think we can put something into sockopt_t to make it avoid
> the copy if needed in the future.

Good point. I'd prefer not to over-engineer this now, but keep it
straightforward to add later if needed. This could be easily achieved with
something like:

typedef struct sockopt {
struct iov_iter iter_in;
struct iov_iter iter_out;
int optlen;
+ bool optlen_dirty; /* set by callback when optlen should be written back */
} sockopt_t;

Wrapper becomes:

if (opt.optlen_dirty &&
copy_to_sockptr(optlen, &opt.optlen, sizeof(int)))
return -EFAULT;

and the protocol callback would need to set

opt->optlen_dirty = true;

I don't think this is needed yet, and if we do need it, it would be better
to review and commit them together, making the rationale clearer for
future developers/LLM agents.

What do you think?

Thanks,
--breno