Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: Convert move_addr_to_user() to scoped user access

move_addr_to_user() is a critical functions that was converted to
masked user access by commit 1fb0e471611d ("net: remove one stac/clac
pair from move_addr_to_user()")

Convert it to scoped user access to simplify the code.

Signed-off-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/36d7f2e7f504d620c1b88526b25ebc89e3cb61d9.1773142315.git.chleroy@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Christophe Leroy (CS GROUP) and committed by
Jakub Kicinski
17edc4e8 dc9902bb

+11 -17
+11 -17
net/socket.c
··· 280 280 281 281 BUG_ON(klen > sizeof(struct sockaddr_storage)); 282 282 283 - if (can_do_masked_user_access()) 284 - ulen = masked_user_access_begin(ulen); 285 - else if (!user_access_begin(ulen, 4)) 286 - return -EFAULT; 283 + scoped_user_rw_access_size(ulen, 4, efault_end) { 284 + unsafe_get_user(len, ulen, efault_end); 287 285 288 - unsafe_get_user(len, ulen, efault_end); 289 - 290 - if (len > klen) 291 - len = klen; 292 - /* 293 - * "fromlen shall refer to the value before truncation.." 294 - * 1003.1g 295 - */ 296 - if (len >= 0) 297 - unsafe_put_user(klen, ulen, efault_end); 298 - 299 - user_access_end(); 286 + if (len > klen) 287 + len = klen; 288 + /* 289 + * "fromlen shall refer to the value before truncation.." 290 + * 1003.1g 291 + */ 292 + if (len >= 0) 293 + unsafe_put_user(klen, ulen, efault_end); 294 + } 300 295 301 296 if (len) { 302 297 if (len < 0) ··· 304 309 return 0; 305 310 306 311 efault_end: 307 - user_access_end(); 308 312 return -EFAULT; 309 313 } 310 314