summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2023-03-15 00:20:22 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-03-15 00:20:22 +0000
commit53c15f7b5a0d8fcd62955aab31b09a4a482b80ec (patch)
tree002567566a4b11c3630baeb1ade674cc126fd6e3
parent64b414b9135f8eef268598de8c664ab99465939e (diff)
parentb13f6a4f50646226dbc7b56758a809d5152ec882 (diff)
downloadandroid-clat-53c15f7b5a0d8fcd62955aab31b09a4a482b80ec.tar.gz
Merge "clatd: use struct instead of direct u8[] for buffer" am: b13f6a4f50
Original change: https://android-review.googlesource.com/c/platform/external/android-clat/+/2485119 Change-Id: I8086b45426d0ece5b92b8083ad86006e24666bd2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--clatd.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/clatd.c b/clatd.c
index 96611d1..284a676 100644
--- a/clatd.c
+++ b/clatd.c
@@ -77,14 +77,17 @@ int ipv6_address_changed(const char *interface) {
}
}
-// reads L3 IPv6 packet from AF_PACKET socket, translates to IPv4, writes to tun
+// reads IPv6 packet from AF_PACKET socket, translates to IPv4, writes to tun
void process_packet_6_to_4(struct tun_data *tunnel) {
// ethernet header is 14 bytes, plus 4 for a normal VLAN tag or 8 for Q-in-Q
// we don't really support vlans (or especially Q-in-Q)...
// but a few bytes of extra buffer space doesn't hurt...
- uint8_t buf[22 + MAXMTU + 1]; // +1 to make packet truncation obvious
+ struct {
+ uint8_t payload[22 + MAXMTU];
+ char pad; // +1 to make packet truncation obvious
+ } buf;
struct iovec iov = {
- .iov_base = buf,
+ .iov_base = &buf,
.iov_len = sizeof(buf),
};
char cmsg_buf[CMSG_SPACE(sizeof(struct tpacket_auxdata))];
@@ -137,7 +140,7 @@ void process_packet_6_to_4(struct tun_data *tunnel) {
}
}
- translate_packet(tunnel->fd4, 0 /* to_ipv6 */, buf + tp_net, readlen - tp_net);
+ translate_packet(tunnel->fd4, 0 /* to_ipv6 */, buf.payload + tp_net, readlen - tp_net);
}
// reads TUN_PI + L3 IPv4 packet from tun, translates to IPv6, writes to AF_INET6/RAW socket