git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Debug: build a summary string tracking transport SMTP commands & responses
[exim.git]
/
src
/
src
/
os.c
diff --git
a/src/src/os.c
b/src/src/os.c
index 9c1281a78ce31626b9a032f45e2b219028e942ba..1b826f3dc1c2164e5d8f8bb6349aaaabded1b346 100644
(file)
--- a/
src/src/os.c
+++ b/
src/src/os.c
@@
-3,6
+3,7
@@
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2021 */
/* See the file NOTICE for conditions of use and distribution. */
#ifdef STAND_ALONE
/* See the file NOTICE for conditions of use and distribution. */
#ifdef STAND_ALONE
@@
-495,9
+496,11
@@
if (getifaddrs(&ifalist) != 0)
for (struct ifaddrs * ifa = ifalist; ifa; ifa = ifa->ifa_next)
{
for (struct ifaddrs * ifa = ifalist; ifa; ifa = ifa->ifa_next)
{
- if (ifa->ifa_addr->sa_family != AF_INET
+ struct sockaddr * ifa_addr = ifa->ifa_addr;
+ if (!ifa_addr) continue;
+ if (ifa_addr->sa_family != AF_INET
#if HAVE_IPV6
#if HAVE_IPV6
- && ifa
->ifa
_addr->sa_family != AF_INET6
+ && ifa_addr->sa_family != AF_INET6
#endif /* HAVE_IPV6 */
)
continue;
#endif /* HAVE_IPV6 */
)
continue;
@@
-508,12
+511,12
@@
for (struct ifaddrs * ifa = ifalist; ifa; ifa = ifa->ifa_next)
/* Create a data block for the address, fill in the data, and put it on the
chain. */
/* Create a data block for the address, fill in the data, and put it on the
chain. */
- next = store_get(sizeof(ip_address_item));
+ next = store_get(sizeof(ip_address_item)
, GET_UNTAINTED
);
next->next = NULL;
next->port = 0;
next->next = NULL;
next->port = 0;
- (void)host_ntoa(-1, ifa
->ifa
_addr, next->address, NULL);
+ (void)host_ntoa(-1, ifa_addr, next->address, NULL);
- if (
yield == NULL
)
+ if (
!yield
)
yield = last = next;
else
{
yield = last = next;
else
{
@@
-743,7
+746,7
@@
for (char * cp = buf; cp < buf + ifc.V_ifc_len; cp += len)
/* Create a data block for the address, fill in the data, and put it on the
chain. */
/* Create a data block for the address, fill in the data, and put it on the
chain. */
- next = store_get(sizeof(ip_address_item));
+ next = store_get(sizeof(ip_address_item)
, GET_UNTAINTED
);
next->next = NULL;
next->port = 0;
(void)host_ntoa(-1, addrp, next->address, NULL);
next->next = NULL;
next->port = 0;
(void)host_ntoa(-1, addrp, next->address, NULL);
@@
-775,13
+778,13
@@
interfaces. We just return the loopback address(es). */
ip_address_item *
os_common_find_running_interfaces(void)
{
ip_address_item *
os_common_find_running_interfaces(void)
{
-ip_address_item *yield = store_get(sizeof(address_item));
+ip_address_item *yield = store_get(sizeof(address_item)
, GET_UNTAINTED
);
yield->address = US"127.0.0.1";
yield->port = 0;
yield->next = NULL;
#if HAVE_IPV6
yield->address = US"127.0.0.1";
yield->port = 0;
yield->next = NULL;
#if HAVE_IPV6
-yield->next = store_get(sizeof(address_item));
+yield->next = store_get(sizeof(address_item)
, GET_UNTAINTED
);
yield->next->address = US"::1";
yield->next->port = 0;
yield->next->next = NULL;
yield->next->address = US"::1";
yield->next->port = 0;
yield->next->next = NULL;
@@
-831,7
+834,7
@@
return type.
res_state
os_get_dns_resolver_res(void)
{
res_state
os_get_dns_resolver_res(void)
{
-
return &_res;
+return &_res;
}
#endif /* OS_GET_DNS_RESOLVER_RES */
}
#endif /* OS_GET_DNS_RESOLVER_RES */