From 364ab3daf6d00dfa8e0dd81046f741e70cac5da9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 5 Mar 2015 10:28:41 +0100 Subject: [PATCH] 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 --- include/netlink-private/netlink.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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)