hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
kernel/net/ipv4/raw.c
....@@ -559,6 +559,9 @@
559559 }
560560
561561 ipcm_init_sk(&ipc, inet);
562
+ /* Keep backward compat */
563
+ if (hdrincl)
564
+ ipc.protocol = IPPROTO_RAW;
562565
563566 if (msg->msg_controllen) {
564567 err = ip_cmsg_send(sk, msg, &ipc, false);
....@@ -626,7 +629,7 @@
626629
627630 flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos,
628631 RT_SCOPE_UNIVERSE,
629
- hdrincl ? IPPROTO_RAW : sk->sk_protocol,
632
+ hdrincl ? ipc.protocol : sk->sk_protocol,
630633 inet_sk_flowi_flags(sk) |
631634 (hdrincl ? FLOWI_FLAG_KNOWN_NH : 0),
632635 daddr, saddr, 0, 0, sk->sk_uid);