aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2022-05-14 15:20:53 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2022-05-14 15:20:53 +0300
commit57f3e09813b2af5a1e7cdd63ce83d968e17d7352 (patch)
treeda0e186a06543b85b161023502cefa35843489b2
parent85ae657849685d27b79ae6b14f7248d81ec99d2c (diff)
downloadlibmicrohttpd-57f3e09813b2af5a1e7cdd63ce83d968e17d7352.tar.gz
libmicrohttpd-57f3e09813b2af5a1e7cdd63ce83d968e17d7352.zip
Return NULL for MHD_CONNECTION_INFO_CLIENT_ADDRESS if information is not available
Pipe or UNIX socket connections may have no client address
-rw-r--r--src/microhttpd/connection.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index ab659064..949e6ec4 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -5041,12 +5041,16 @@ MHD_get_connection_info (struct MHD_Connection *connection,
5041 return &connection->connection_info_dummy; 5041 return &connection->connection_info_dummy;
5042#endif /* HTTPS_SUPPORT */ 5042#endif /* HTTPS_SUPPORT */
5043 case MHD_CONNECTION_INFO_CLIENT_ADDRESS: 5043 case MHD_CONNECTION_INFO_CLIENT_ADDRESS:
5044 memset (&connection->connection_info_dummy.client_addr, 0, 5044 if (0 < connection->addr_len)
5045 sizeof (connection->connection_info_dummy.client_addr)); 5045 {
5046 memcpy (&connection->connection_info_dummy.client_addr, 5046 memset (&connection->connection_info_dummy.client_addr, 0,
5047 &connection->addr, 5047 sizeof (connection->connection_info_dummy.client_addr));
5048 connection->addr_len); 5048 memcpy (&connection->connection_info_dummy.client_addr,
5049 return &connection->connection_info_dummy; 5049 &connection->addr,
5050 (size_t) connection->addr_len);
5051 return &connection->connection_info_dummy;
5052 }
5053 return NULL;
5050 case MHD_CONNECTION_INFO_DAEMON: 5054 case MHD_CONNECTION_INFO_DAEMON:
5051 connection->connection_info_dummy.daemon = connection->daemon; 5055 connection->connection_info_dummy.daemon = connection->daemon;
5052 return &connection->connection_info_dummy; 5056 return &connection->connection_info_dummy;