Author: kib
Date: Tue Nov 10 08:59:55 2020
New Revision: 367548
URL: https://svnweb.freebsd.org/changeset/base/367548

Log:
  MFC r367296:
  if_media.c SIOCGMEDIAX handler: improve loop

Modified:
  stable/12/sys/net/if_media.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/net/if_media.c
==============================================================================
--- stable/12/sys/net/if_media.c        Tue Nov 10 08:33:45 2020        
(r367547)
+++ stable/12/sys/net/if_media.c        Tue Nov 10 08:59:55 2020        
(r367548)
@@ -301,15 +301,17 @@ ifmedia_ioctl(struct ifnet *ifp, struct ifreq *ifr, st
                 * allocate.
                 */
                i = 0;
-               LIST_FOREACH(ep, &ifm->ifm_list, ifm_list)
-                       if (i++ < ifmr->ifm_count) {
+               LIST_FOREACH(ep, &ifm->ifm_list, ifm_list) {
+                       if (i < ifmr->ifm_count) {
                                error = copyout(&ep->ifm_media,
-                                   ifmr->ifm_ulist + i - 1, sizeof(int));
-                               if (error)
+                                   ifmr->ifm_ulist + i, sizeof(int));
+                               if (error != 0)
                                        break;
                        }
+                       i++;
+               }
                if (error == 0 && i > ifmr->ifm_count)
-                       error = ifmr->ifm_count ? E2BIG : 0;
+                       error = ifmr->ifm_count != 0 ? E2BIG : 0;
                ifmr->ifm_count = i;
                break;
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to