X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fnumnicks.c;h=9dd051dea3cacf8a00b871c314f9a2dba4c36d49;hb=e9d777c29b0fed2ab484a62d2e2422a02d074d3b;hp=bf11b7e1df73e953d84ad75256d64c79c297d7d2;hpb=37b928932bbc44140d797a2cda74b83786ccf0d5;p=ircu2.10.12-pk.git diff --git a/ircd/numnicks.c b/ircd/numnicks.c index bf11b7e..9dd051d 100644 --- a/ircd/numnicks.c +++ b/ircd/numnicks.c @@ -502,9 +502,12 @@ void base64toip(const char* input, struct irc_in_addr* addr) memset(addr, 0, sizeof(*addr)); if (strlen(input) == 6) { unsigned int in = base64toint(input); - addr->in6_16[5] = htons(65535); - addr->in6_16[6] = htons(in >> 16); - addr->in6_16[7] = htons(in & 65535); + /* An all-zero address should stay that way. */ + if (in) { + addr->in6_16[5] = htons(65535); + addr->in6_16[6] = htons(in >> 16); + addr->in6_16[7] = htons(in & 65535); + } } else { unsigned int pos = 0; do {