<div>Hello,</div>
<div> </div>
<div>I have found numerous bugs in ircd-hybrid 7.2.0 as can be seen below:</div>
<div> </div>
<div>- sockhost is not properly relayed</div>
<div>- match was called wrong causing xlines to fail.</div>
<div>- Soft caller ID does not function correctly.</div>
<div>- channel list formatting is broken</div>
<div> </div>
<div>Patch to fix the first 3 issues is below:</div>
<div> </div>
<div>The 4th issue is something introduced with the new nuh code. you can replicate it like so:</div>
<div> </div>
<div>/mode #Channel +bbb nick1 nick2 nick3</div>
<div> </div>
<div>The same is true for any of the lists that take parameters in such a fashion.</div>
<div> </div>
<div>and look at the output.</div>
<div> </div>
<div>Regards,</div>
<div> </div>
<div>Jon</div>
<div> </div>
<div>Index: src/s_user.c<br>===================================================================<br>--- src/s_user.c        (revision 380)<br>+++ src/s_user.c        (working copy)<br>@@ -619,8 +619,7 @@<br>                  source_p->name, source_p->hopcount+1,
<br>                 (unsigned long)source_p->tsinfo,<br>                  ubuf, source_p->username, source_p->host,<br>-                ((MyClient(source_p) && !IsIPSpoof(source_p)) ?<br>-                source_p->sockhost : "0"),
<br>+                IsIPSpoof(source_p) ? "0" : source_p->sockhost,<br>                  source_p->id, source_p->info);<br>     }<br>     else<br>@@ -648,7 +647,7 @@<br>                    source_p->name, source_p->hopcount+1,
<br>                   (unsigned long)source_p->tsinfo,<br>                    ubuf, source_p->username, source_p->host,<br>-                  ((MyClient(source_p)&&!IsIPSpoof(source_p))?source_p->sockhost:"0"),
<br>+                  IsIPSpoof(source_p) ? "0" : source_p->sockhost,<br>                    source_p->id, source_p->info);<br>       else<br>         sendto_one(server, "NICK %s %d %lu %s %s %s %s :%s",
<br>Index: src/client.c<br>===================================================================<br>--- src/client.c        (revision 380)<br>+++ src/client.c        (working copy)<br>@@ -1231,11 +1231,13 @@<br>   }<br> <br>
   if (IsSoftCallerId(target))<br>-  {<br>     DLINK_FOREACH(ptr, target->channel.head)<br>-      if (IsMember(source, ptr->data))<br>+    {<br>+      struct Channel *chptr = ((struct Membership *) ptr->data)->chptr;
<br>+<br>+      if (IsMember(source, chptr))<br>         return (1);<br>-  }<br>+    }<br> <br>   return (0);<br> }<br>Index: src/s_serv.c<br>===================================================================<br>--- src/s_serv.c        (revision 380)
<br>+++ src/s_serv.c        (working copy)<br>@@ -892,8 +892,8 @@<br>               target_p->name, target_p->hopcount + 1,<br>               (unsigned long) target_p->tsinfo,<br>               ubuf, target_p->username, target_p->host,
<br>-          ((MyClient(target_p)&&!IsIPSpoof(target_p))?target_p->sockhost:"0"),<br>-          target_p->id, target_p->info);<br>+              IsIPSpoof(target_p) ? "0" : target_p->sockhost,
<br>+              target_p->id, target_p->info);<br>   else<br>     sendto_one(client_p, "NICK %s %d %lu %s %s %s %s :%s",<br>               target_p->name, target_p->hopcount + 1,<br>Index: modules/m_xline.c
<br>===================================================================<br>--- modules/m_xline.c   (revision 380)<br>+++ modules/m_xline.c   (working copy)<br>@@ -235,7 +235,7 @@<br>                      "XLINE %s %s %s :%s",
<br>                      parv[1], parv[2], parv[3], parv[4]);<br> <br>-  if (match(parv[1], <a href="http://me.name">me.name</a>))<br>+  if (!match(parv[1], <a href="http://me.name">me.name</a>))<br>     return;<br> <br>
   if (find_matching_name_conf(ULINE_TYPE, source_p->servptr->name,</div>