From: Thomas Haller Date: Thu, 5 Mar 2015 09:28:41 +0000 (+0100) Subject: dbg: save errno from modification in NL_DBG() X-Git-Tag: libnl3_2_26rc1~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=364ab3daf6d00dfa8e0dd81046f741e70cac5da9;p=thirdparty%2Flibnl.git dbg: save errno from modification in NL_DBG() Evaluating the logging statement might overwrite the errno. Save and restore it so that NL_DBG() preserves the errno. Signed-off-by: Thomas Haller --- diff --git a/include/netlink-private/netlink.h b/include/netlink-private/netlink.h index 39f4dff..b06df8b 100644 --- a/include/netlink-private/netlink.h +++ b/include/netlink-private/netlink.h @@ -86,11 +86,14 @@ struct trans_list { #ifdef NL_DEBUG #define NL_DBG(LVL,FMT,ARG...) \ do { \ - if (LVL <= nl_debug) \ + if (LVL <= nl_debug) { \ + int _errsv = errno; \ fprintf(stderr, \ "DBG<" #LVL ">%20s:%-4u %s: " FMT, \ __FILE__, __LINE__, \ __PRETTY_FUNCTION__, ##ARG); \ + errno = _errsv; \ + } \ } while (0) #else /* NL_DEBUG */ #define NL_DBG(LVL,FMT,ARG...) do { } while(0)