From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/10463 Path: news.gmane.org!.POSTED!not-for-mail From: Daniel Sabogal Newsgroups: gmane.linux.lib.musl.general Subject: [PATCH] fix if_indextoname error case Date: Thu, 15 Sep 2016 11:27:30 -0400 Message-ID: <20160915152731.4897-1-dsabogalcc@gmail.com> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1473953360 16778 195.159.176.226 (15 Sep 2016 15:29:20 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 15 Sep 2016 15:29:20 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-10475-gllmg-musl=m.gmane.org@lists.openwall.com Thu Sep 15 17:29:05 2016 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1bkYam-0001Bu-Ef for gllmg-musl@m.gmane.org; Thu, 15 Sep 2016 17:28:48 +0200 Original-Received: (qmail 17857 invoked by uid 550); 15 Sep 2016 15:28:47 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 17805 invoked from network); 15 Sep 2016 15:28:45 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id; bh=Zvog2XprVK1pThKB8qDOYV6ihk47A4y2U0cWwazzXhg=; b=Pz3iyiRryWvrB/SW6HZEI4S26jQOKQ/RrKlIWTyz27QQxeBcGBOrsDTxI4OkOGLVNT t9IWV4VQFvo+bHAe/Ap8q6fYB7kLjAjQVfi6IwZKZM9SmezAmm60R8swRD2ACR3C94c+ uObjn8y7+FxzeFqAx0NY63SCPH6fm16IgPeYKRixDU6dghDC3N41u7pY6OYKwAa8lrFm YYjg6sdKyGeKi73/vV6rWOze2XUG/ZaHPCWNM0IFAIeHl67ccxogbPs8mi/tD7g8wmOU H/PDkYF03UvIEz2zpueZQzxOq43FeTs1iQwTO++7ipl/EGX1wiy385ABMIt8TLLEeXUY Ar8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=Zvog2XprVK1pThKB8qDOYV6ihk47A4y2U0cWwazzXhg=; b=budgGOzSaVB6RYtM54Y7gFJcBfRh5vFBzUXxJprZPwv+baCfcQ773j2RsRrSI1V4k4 QX9ChdN30qXFAGsg37cnck01MAdiexNMEpGoGiCZ1PDn7Z5wLoq/nplSdxjG4hHLLgKZ BaLmlC7KTi107niKt62wPPDcAm4ErwUGKaGyyDOfHY8FmnP4CZBOPRHgE52gHWJ/24/e 3DYEafVQmAnOUTS/SovTjg5Q5Huq0giSMQqwoajni9y6HgIGg1lVUwKzhsB2v0Dg4UzK +By3jB80k34yhYpR2dGeNXz7Y3fGdf9g2nTEIBgXmOhVQ1oxAsud/AQUePePuCYAC3F+ qznw== X-Gm-Message-State: AE9vXwNHhG2GDfBYWp1uCnxp3CGMQpEPZVAuUVLIThwhjMaReaOV0WN5cy0oThvYNbEc8Q== X-Received: by 10.157.26.85 with SMTP id u21mr7298208otu.86.1473953312661; Thu, 15 Sep 2016 08:28:32 -0700 (PDT) X-Mailer: git-send-email 2.10.0 Xref: news.gmane.org gmane.linux.lib.musl.general:10463 Archived-At: posix requires errno to be set to ENXIO if the interface does not exist. linux returns ENODEV instead so we handle this. --- src/network/if_indextoname.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/network/if_indextoname.c b/src/network/if_indextoname.c index 6ee7f13..3b368bf 100644 --- a/src/network/if_indextoname.c +++ b/src/network/if_indextoname.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "syscall.h" char *if_indextoname(unsigned index, char *name) @@ -14,5 +15,9 @@ char *if_indextoname(unsigned index, char *name) ifr.ifr_ifindex = index; r = ioctl(fd, SIOCGIFNAME, &ifr); __syscall(SYS_close, fd); - return r < 0 ? 0 : strncpy(name, ifr.ifr_name, IF_NAMESIZE); + if (r < 0) { + if (errno == ENODEV) errno = ENXIO; + return 0; + } + return strncpy(name, ifr.ifr_name, IF_NAMESIZE); } -- 2.10.0