Commit 5cd2f788 authored by Willem de Bruijn's avatar Willem de Bruijn Committed by Jakub Kicinski
Browse files

ipv6: initialize inet socket cookies with sockcm_init

parent 09620859
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -371,6 +371,8 @@ static inline void ipcm6_init_sk(struct ipcm6_cookie *ipc6,
		.tclass = inet6_sk(sk)->tclass,
		.dontfrag = inet6_test_bit(DONTFRAG, sk),
	};

	sockcm_init(&ipc6->sockc, sk);
}

static inline struct ipv6_txoptions *txopt_get(const struct ipv6_pinfo *np)
+0 −3
Original line number Diff line number Diff line
@@ -119,9 +119,6 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
		return -EINVAL;

	ipcm6_init_sk(&ipc6, sk);
	ipc6.sockc.priority = READ_ONCE(sk->sk_priority);
	ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags);
	ipc6.sockc.mark = READ_ONCE(sk->sk_mark);

	fl6.flowi6_oif = oif;

+3 −6
Original line number Diff line number Diff line
@@ -769,19 +769,16 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)

	hdrincl = inet_test_bit(HDRINCL, sk);

	ipcm6_init_sk(&ipc6, sk);

	/*
	 *	Get and verify the address.
	 */
	memset(&fl6, 0, sizeof(fl6));

	fl6.flowi6_mark = READ_ONCE(sk->sk_mark);
	fl6.flowi6_mark = ipc6.sockc.mark;
	fl6.flowi6_uid = sk->sk_uid;

	ipcm6_init_sk(&ipc6, sk);
	ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags);
	ipc6.sockc.mark = fl6.flowi6_mark;
	ipc6.sockc.priority = READ_ONCE(sk->sk_priority);

	if (sin6) {
		if (addr_len < SIN6_LEN_RFC2133)
			return -EINVAL;
+0 −3
Original line number Diff line number Diff line
@@ -1496,9 +1496,6 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)

	ipcm6_init_sk(&ipc6, sk);
	ipc6.gso_size = READ_ONCE(up->gso_size);
	ipc6.sockc.tsflags = READ_ONCE(sk->sk_tsflags);
	ipc6.sockc.mark = READ_ONCE(sk->sk_mark);
	ipc6.sockc.priority = READ_ONCE(sk->sk_priority);

	/* destination address check */
	if (sin6) {