summaryrefslogtreecommitdiff
path: root/shared/nm-utils/nm-shared-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'shared/nm-utils/nm-shared-utils.h')
-rw-r--r--shared/nm-utils/nm-shared-utils.h34
1 files changed, 20 insertions, 14 deletions
diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h
index fd2019349a..ce308ef67c 100644
--- a/shared/nm-utils/nm-shared-utils.h
+++ b/shared/nm-utils/nm-shared-utils.h
@@ -700,20 +700,26 @@ nm_utils_error_set_literal (GError **error, int error_code, const char *literal)
g_set_error ((error), NM_UTILS_ERROR, error_code, __VA_ARGS__)
#define nm_utils_error_set_errno(error, errsv, fmt, ...) \
- g_set_error ((error), \
- NM_UTILS_ERROR, \
- NM_UTILS_ERROR_UNKNOWN, \
- fmt, \
- ##__VA_ARGS__, \
- nm_strerror_native (({ \
- const int _errsv = (errsv); \
- \
- ( _errsv >= 0 \
- ? _errsv \
- : ( G_UNLIKELY (_errsv == G_MININT) \
- ? G_MAXINT \
- : -errsv)); \
- })))
+ G_STMT_START { \
+ char _bstrerr[NM_STRERROR_BUFSIZE]; \
+ \
+ g_set_error ((error), \
+ NM_UTILS_ERROR, \
+ NM_UTILS_ERROR_UNKNOWN, \
+ fmt, \
+ ##__VA_ARGS__, \
+ nm_strerror_native_r (({ \
+ const int _errsv = (errsv); \
+ \
+ ( _errsv >= 0 \
+ ? _errsv \
+ : ( G_UNLIKELY (_errsv == G_MININT) \
+ ? G_MAXINT \
+ : -errsv)); \
+ }), \
+ _bstrerr, \
+ sizeof (_bstrerr))); \
+ } G_STMT_END
/*****************************************************************************/