From 0529337c373d37b8bb38a86e7c715bc2b8a8244e Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 6 Sep 2009 23:01:16 +0000 Subject: ifconfig: fix no output when if_readlist_proc() fails The rewrite of if_readlist() on 28 Jun 2003 broke the function when the proc interface isn't readable. Have if_readlist() return an error only if both if_readxxx funcs failed. This fixes Gentoo 238363. --- lib/interface.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/interface.c b/lib/interface.c index f6f8906..d08ee55 100644 --- a/lib/interface.c +++ b/lib/interface.c @@ -7,7 +7,7 @@ 8/2000 Andi Kleen make the list operations a bit more efficient. People are crazy enough to use thousands of aliases now. - $Id: interface.c,v 1.31 2009/07/08 00:24:03 ecki Exp $ + $Id: interface.c,v 1.32 2009/09/06 23:01:16 vapier Exp $ */ #include "config.h" @@ -382,14 +382,17 @@ int if_readlist(void) /* caller will/should check not to call this too often * (i.e. only if if_list_all == 0 */ - int err = 0; + int proc_err, conf_err; - err |= if_readlist_proc(NULL); - err |= if_readconf(); + proc_err = if_readlist_proc(NULL); + conf_err = if_readconf(); if_list_all = 1; - return err; + if (proc_err < 0 && conf_err < 0) + return -1; + else + return 0; } /* Support for fetching an IPX address */ -- cgit v1.2.3-65-gdbad