Skip to content

Commit 9e8d101

Browse files
oleremPaolo Abeni
authored andcommitted
net: selftests: initialize TCP header and skb payload with zero
Zero-initialize TCP header via memset() to avoid garbage values that may affect checksum or behavior during test transmission. Also zero-fill allocated payload and padding regions using memset() after skb_put(), ensuring deterministic content for all outgoing test packets. Fixes: 3e1e58d ("net: add generic selftest support") Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Cc: stable@vger.kernel.org Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20250416160125.2914724-1-o.rempel@pengutronix.de Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent 30a41ed commit 9e8d101

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

net/core/selftests.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,10 @@ static struct sk_buff *net_test_get_skb(struct net_device *ndev,
100100
ehdr->h_proto = htons(ETH_P_IP);
101101

102102
if (attr->tcp) {
103+
memset(thdr, 0, sizeof(*thdr));
103104
thdr->source = htons(attr->sport);
104105
thdr->dest = htons(attr->dport);
105106
thdr->doff = sizeof(struct tcphdr) / 4;
106-
thdr->check = 0;
107107
} else {
108108
uhdr->source = htons(attr->sport);
109109
uhdr->dest = htons(attr->dport);
@@ -144,10 +144,18 @@ static struct sk_buff *net_test_get_skb(struct net_device *ndev,
144144
attr->id = net_test_next_id;
145145
shdr->id = net_test_next_id++;
146146

147-
if (attr->size)
148-
skb_put(skb, attr->size);
149-
if (attr->max_size && attr->max_size > skb->len)
150-
skb_put(skb, attr->max_size - skb->len);
147+
if (attr->size) {
148+
void *payload = skb_put(skb, attr->size);
149+
150+
memset(payload, 0, attr->size);
151+
}
152+
153+
if (attr->max_size && attr->max_size > skb->len) {
154+
size_t pad_len = attr->max_size - skb->len;
155+
void *pad = skb_put(skb, pad_len);
156+
157+
memset(pad, 0, pad_len);
158+
}
151159

152160
skb->csum = 0;
153161
skb->ip_summed = CHECKSUM_PARTIAL;

0 commit comments

Comments
 (0)