Commit 11cbf29
net: af_key: zero aligned sockaddr tail in PF_KEY exports
[ Upstream commit 426c355 ]
PF_KEY export paths use `pfkey_sockaddr_size()` when reserving sockaddr
payload space, so IPv6 addresses occupy 32 bytes on the wire. However,
`pfkey_sockaddr_fill()` initializes only the first 28 bytes of
`struct sockaddr_in6`, leaving the final 4 aligned bytes uninitialized.
Not every PF_KEY message is affected. The state and policy dump builders
already zero the whole message buffer before filling the sockaddr
payloads. Keep the fix to the export paths that still append aligned
sockaddr payloads with plain `skb_put()`:
- `SADB_ACQUIRE`
- `SADB_X_NAT_T_NEW_MAPPING`
- `SADB_X_MIGRATE`
Fix those paths by clearing only the aligned sockaddr tail after
`pfkey_sockaddr_fill()`.
Fixes: 1da177e ("Linux-2.6.12-rc2")
Fixes: 08de61b ("[PFKEYV2]: Extension for dynamic update of endpoint address(es)")
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Co-developed-by: Yuan Tan <yuantan098@gmail.com>
Signed-off-by: Yuan Tan <yuantan098@gmail.com>
Suggested-by: Xin Liu <bird@lzu.edu.cn>
Tested-by: Xiao Liu <lx24@stu.ynu.edu.cn>
Signed-off-by: Zhengchuan Liang <zcliangcn@gmail.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>1 parent 3e223a7 commit 11cbf29
1 file changed
Lines changed: 34 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
757 | 757 | | |
758 | 758 | | |
759 | 759 | | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
760 | 776 | | |
761 | 777 | | |
762 | 778 | | |
| |||
3206 | 3222 | | |
3207 | 3223 | | |
3208 | 3224 | | |
3209 | | - | |
3210 | | - | |
3211 | | - | |
| 3225 | + | |
| 3226 | + | |
| 3227 | + | |
3212 | 3228 | | |
3213 | 3229 | | |
3214 | 3230 | | |
| |||
3221 | 3237 | | |
3222 | 3238 | | |
3223 | 3239 | | |
3224 | | - | |
3225 | | - | |
3226 | | - | |
| 3240 | + | |
| 3241 | + | |
| 3242 | + | |
3227 | 3243 | | |
3228 | 3244 | | |
3229 | 3245 | | |
| |||
3421 | 3437 | | |
3422 | 3438 | | |
3423 | 3439 | | |
3424 | | - | |
3425 | | - | |
3426 | | - | |
| 3440 | + | |
| 3441 | + | |
| 3442 | + | |
3427 | 3443 | | |
3428 | 3444 | | |
3429 | 3445 | | |
| |||
3443 | 3459 | | |
3444 | 3460 | | |
3445 | 3461 | | |
3446 | | - | |
3447 | | - | |
3448 | | - | |
| 3462 | + | |
| 3463 | + | |
| 3464 | + | |
3449 | 3465 | | |
3450 | 3466 | | |
3451 | 3467 | | |
| |||
3474 | 3490 | | |
3475 | 3491 | | |
3476 | 3492 | | |
3477 | | - | |
3478 | | - | |
3479 | | - | |
| 3493 | + | |
| 3494 | + | |
| 3495 | + | |
3480 | 3496 | | |
3481 | 3497 | | |
3482 | 3498 | | |
3483 | | - | |
3484 | | - | |
3485 | | - | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
3486 | 3502 | | |
3487 | 3503 | | |
3488 | 3504 | | |
| |||
0 commit comments