Author: tuexen
Date: Mon Jun 22 05:31:29 2015
New Revision: 284692
URL: https://svnweb.freebsd.org/changeset/base/284692

Log:
  MFC r284547:
  Fix a bug reported by coverity. Since AF_UNIX sockets don't
  have multiple addresses, the problem didn't show up during testing.
  
  Reported by:  Coverity
  CID:          1306787

Modified:
  stable/10/usr.bin/sockstat/sockstat.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/sockstat/sockstat.c
==============================================================================
--- stable/10/usr.bin/sockstat/sockstat.c       Mon Jun 22 04:25:41 2015        
(r284691)
+++ stable/10/usr.bin/sockstat/sockstat.c       Mon Jun 22 05:31:29 2015        
(r284692)
@@ -865,6 +865,7 @@ displaysock(struct sock *s, int pos)
        void *p;
        int hash;
        struct addr *laddr, *faddr;
+       struct sock *s_tmp;
 
        while (pos < 29)
                pos += xprintf(" ");
@@ -908,18 +909,20 @@ displaysock(struct sock *s, int pos)
                        }
                        pos += xprintf("-> ");
                        for (hash = 0; hash < HASHSIZE; ++hash) {
-                               for (s = sockhash[hash]; s != NULL; s = s->next)
-                                       if (s->pcb == p)
+                               for (s_tmp = sockhash[hash];
+                                    s_tmp != NULL;
+                                    s_tmp = s_tmp->next)
+                                       if (s_tmp->pcb == p)
                                                break;
-                               if (s != NULL)
+                               if (s_tmp != NULL)
                                        break;
                        }
-                       if (s == NULL ||
-                           s->laddr == NULL ||
-                           s->laddr->address.ss_len == 0)
+                       if (s_tmp == NULL ||
+                           s_tmp->laddr == NULL ||
+                           s_tmp->laddr->address.ss_len == 0)
                                pos += xprintf("??");
                        else
-                               pos += printaddr(&s->laddr->address);
+                               pos += printaddr(&s_tmp->laddr->address);
                        break;
                default:
                        abort();
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to