Enable stack protector to prevent stack buffer overflows.

Fix QUIC build _FORTIFY_SOURCE=2 for arcore, note Chrome OS did a simular fix to cl/530360898 no change in functionally

This will cost ARCore +274.4k http://go/arcore-size-reports/stack_canary_fortify

To know more about how this was tried and sign of see.
go/memory-request-stack-canary-fortify-in-arcore
go/arcore-fortify-and-jni

PiperOrigin-RevId: 686151450
diff --git a/quiche/quic/core/io/socket_posix.inc b/quiche/quic/core/io/socket_posix.inc
index 45e54e0..306c2ac 100644
--- a/quiche/quic/core/io/socket_posix.inc
+++ b/quiche/quic/core/io/socket_posix.inc
@@ -79,11 +79,22 @@
                                                           len, flags);
 }
 ssize_t SyscallSend(int sockfd, const void* buf, size_t len, int flags) {
-  return SyscallWrapper(&::send, sockfd, buf, len, flags);
+  // When compiled with _FORTIFY_SOURCE, there are two overloads of recv()
+  // available, which prevents SyscallWrapper from being able to infer its
+  // template arguments. This currently happens Android ARCore builds.
+  // Specify the template arguments explicitly as a workaround.
+  return SyscallWrapper<ssize_t, int, const void*, size_t, int>(
+      &::send, sockfd, buf, len, flags);
 }
 ssize_t SyscallSendTo(int sockfd, const void* buf, size_t len, int flags,
                       const sockaddr* addr, socklen_t addrlen) {
-  return SyscallWrapper(&::sendto, sockfd, buf, len, flags, addr, addrlen);
+  // When compiled with _FORTIFY_SOURCE, there are two overloads of recv()
+  // available, which prevents SyscallWrapper from being able to infer its
+  // template arguments. This currently happens Android ARCore builds.
+  // Specify the template arguments explicitly as a workaround.
+  return SyscallWrapper<ssize_t, int, const void*, size_t, int,
+                        const sockaddr*, socklen_t>(
+      &::sendto, sockfd, buf, len, flags, addr, addrlen);
 }
 
 // Wrapper of absl::ErrnoToStatus that ensures the `unavailable_error_numbers`