Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Nov 2020 08:59:55 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r367548 - stable/12/sys/net
Message-ID:  <202011100859.0AA8xtmY077324@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011100859.0AA8xtmY077324>