-
Notifications
You must be signed in to change notification settings - Fork 30
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;?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels