[Bug 1825] New: ipv64_normalise_mapped()'s memset should use a4, not addr, for clarity
bugzilla-daemon at bugzilla.mindrot.org
bugzilla-daemon at bugzilla.mindrot.org
Thu Sep 23 12:04:13 EST 2010
https://bugzilla.mindrot.org/show_bug.cgi?id=1825
Summary: ipv64_normalise_mapped()'s memset should use a4, not
addr, for clarity
Product: Portable OpenSSH
Version: 5.6p1
Platform: All
OS/Version: All
Status: NEW
Severity: trivial
Priority: P2
Component: Miscellaneous
AssignedTo: unassigned-bugs at mindrot.org
ReportedBy: foo at mailinator.com
The current code in "canohost.c" looks like this:
void
ipv64_normalise_mapped(struct sockaddr_storage *addr, socklen_t *len)
{
struct sockaddr_in6 *a6 = (struct sockaddr_in6 *)addr;
struct sockaddr_in *a4 = (struct sockaddr_in *)addr;
...
memset(addr, 0, sizeof(*a4));
That last line has the correct behavior, but it would help with static
analysis and compiler diagnostics if it were written as:
memset(a4, 0, sizeof(*a4));
A compiler here unnamed gives a warning on the unmodified line, because
it sees that *addr is not the same size as *a4 and therefore the
memset() might be setting the "wrong" number of bytes. If we change
the code to use a4 consistently when referring to an IPv4 sockaddr, the
compiler is happier, and incidentally the code's correctness is more
obvious, too.
--
Configure bugmail: https://bugzilla.mindrot.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
More information about the openssh-bugs
mailing list