From 62e18423450cee11d9bd4517860aa675c0227027 Mon Sep 17 00:00:00 2001 From: Andrei Emeltchenko Date: Fri, 17 Oct 2014 15:54:07 +0300 Subject: [PATCH] bnep: Refactor bnep_if_up() returning -errno Some functions are using bnep_if_up() like bnep_server_add() referring directly to errno which may be overwritten already. --- profiles/network/bnep.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c index e17a130ff..3a6e3a4a4 100644 --- a/profiles/network/bnep.c +++ b/profiles/network/bnep.c @@ -195,7 +195,7 @@ static int bnep_connadd(int sk, uint16_t role, char *dev) static int bnep_if_up(const char *devname) { struct ifreq ifr; - int sk, err; + int sk, err = 0; sk = socket(AF_INET, SOCK_DGRAM, 0); @@ -205,16 +205,15 @@ static int bnep_if_up(const char *devname) ifr.ifr_flags |= IFF_UP; ifr.ifr_flags |= IFF_MULTICAST; - err = ioctl(sk, SIOCSIFFLAGS, (void *) &ifr); + if (ioctl(sk, SIOCSIFFLAGS, (void *) &ifr) < 0) { + err = -errno; + error("bnep: Could not bring up %s: %s(%d)", + devname, strerror(-err), -err); + } close(sk); - if (err < 0) { - error("bnep: Could not bring up %s", devname); - return err; - } - - return 0; + return err; } static int bnep_if_down(const char *devname) -- 2.47.3