Fixing crash during IPv6 text address generation.
When the textual representation of an IPv6 nxt_sockaddr_t was being
generated, a crash would occur if the address had a full IPv6 form:
f607:7403:1e4b:6c66:33b2:843f:2517:da27
This was caused by a variable that tracks the location of a
collapsed group ("::") that was not set to a sane default. When
the address was generated, a group would be inserted when
it was not necessary, thus causing an overflow.
This closes #481 issue on GitHub.
This commit is contained in:
@@ -45,6 +45,13 @@ process stopped or crashed.
|
|||||||
</para>
|
</para>
|
||||||
</change>
|
</change>
|
||||||
|
|
||||||
|
<change type="bugfix">
|
||||||
|
<para>
|
||||||
|
the controller or router process could crash if the configuration contained
|
||||||
|
a full-form IPv6 in a listener address.
|
||||||
|
</para>
|
||||||
|
</change>
|
||||||
|
|
||||||
</changes>
|
</changes>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -525,9 +525,9 @@ nxt_inet6_ntop(u_char *addr, u_char *buf, u_char *end)
|
|||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
zero_start = 8;
|
zero_start = 16;
|
||||||
zero_groups = 0;
|
zero_groups = 0;
|
||||||
last_zero_start = 8;
|
last_zero_start = 16;
|
||||||
last_zero_groups = 0;
|
last_zero_groups = 0;
|
||||||
|
|
||||||
for (i = 0; i < 16; i += 2) {
|
for (i = 0; i < 16; i += 2) {
|
||||||
|
|||||||
Reference in New Issue
Block a user