-
Notifications
You must be signed in to change notification settings - Fork 29
Closed
Description
The following code snippet seems odd to me:
systemd-netlogd/src/netlog/netlog-network.c
Lines 137 to 168 in a7c6b83
_cleanup_free_ char *pretty = NULL; | |
union sockaddr_union sa; | |
socklen_t salen; | |
int r; | |
assert(m); | |
assert(m->socket >= 0); | |
switch (m->address.sockaddr.sa.sa_family) { | |
case AF_INET: | |
sa = (union sockaddr_union) { | |
.in.sin_family = m->address.sockaddr.sa.sa_family, | |
.in.sin_port = m->address.sockaddr.in.sin_port, | |
.in.sin_addr = m->address.sockaddr.in.sin_addr, | |
}; | |
salen = sizeof(sa.in); | |
break; | |
case AF_INET6: | |
sa = (union sockaddr_union) { | |
.in6.sin6_family = m->address.sockaddr.sa.sa_family, | |
.in6.sin6_port = m->address.sockaddr.in6.sin6_port, | |
.in6.sin6_addr = m->address.sockaddr.in6.sin6_addr, | |
}; | |
salen = sizeof(sa.in6); | |
break; | |
default: | |
return -EAFNOSUPPORT; | |
} | |
r = sockaddr_pretty(&m->address.sockaddr.sa, salen, true, true, &pretty); | |
if (r < 0) | |
return r; |
The variable sa
is assigned but its value (only its size) is never used.
Should the code either look like this:
case AF_INET:
salen = sizeof(m->address.sockaddr.in);
break;
case AF_INET6:
salen = sizeof(m->address.sockaddr.in6);
break;
or should the variable be used this way:
r = sockaddr_pretty(sa, salen, true, true, &pretty);
if (r < 0)
return r;
?
Metadata
Metadata
Assignees
Labels
No labels