summaryrefslogtreecommitdiffstats
path: root/src/kadmin
diff options
context:
space:
mode:
Diffstat (limited to 'src/kadmin')
-rw-r--r--src/kadmin/server/network.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/kadmin/server/network.c b/src/kadmin/server/network.c
index 14cfd46ad..8382b7350 100644
--- a/src/kadmin/server/network.c
+++ b/src/kadmin/server/network.c
@@ -1146,8 +1146,13 @@ recv_from_to(int s, void *buf, size_t len, int flags,
struct sockaddr *to, socklen_t *tolen)
{
#if (!defined(IP_PKTINFO) && !defined(IPV6_PKTINFO)) || !defined(CMSG_SPACE)
- if (to && tolen)
+ if (to && tolen) {
+ /* Clobber with something recognizeable in case we try to use
+ the address. */
+ memset(to, 0x40, *tolen);
*tolen = 0;
+ }
+
return recvfrom(s, buf, len, flags, from, fromlen);
#else
int r;
@@ -1159,6 +1164,10 @@ recv_from_to(int s, void *buf, size_t len, int flags,
if (!to || !tolen)
return recvfrom(s, buf, len, flags, from, fromlen);
+ /* Clobber with something recognizeable in case we can't extract
+ the address but try to use it anyways. */
+ memset(to, 0x40, *tolen);
+
iov.iov_base = buf;
iov.iov_len = len;
memset(&msg, 0, sizeof(msg));