Prohibit same +A and +U pass; fix IAuth crash (#1193808), invite
[ircu2.10.12-pk.git] / ircd / numnicks.c
index bf11b7e1df73e953d84ad75256d64c79c297d7d2..9dd051dea3cacf8a00b871c314f9a2dba4c36d49 100644 (file)
@@ -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 {