Fix namespace violations in local variables used to prevent double
evaluation in macros. git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@461 185d5e19-27fe-0310-9dcf-9bff6b9f3609
This commit is contained in:
parent
0eae3f21c1
commit
a1be39bf2d
|
@ -134,52 +134,52 @@ pam_module_t *openpam_dynamic(const char *);
|
|||
#ifdef OPENPAM_DEBUG
|
||||
#define ENTER() openpam_log(PAM_LOG_DEBUG, "entering")
|
||||
#define ENTERI(i) do { \
|
||||
int _i = (i); \
|
||||
if (_i > 0 && _i < PAM_NUM_ITEMS) \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: %s", pam_item_name[_i]); \
|
||||
int i_ = (i); \
|
||||
if (i_ > 0 && i_ < PAM_NUM_ITEMS) \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: %s", pam_item_name[i_]); \
|
||||
else \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: %d", _i); \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: %d", i_); \
|
||||
} while (0)
|
||||
#define ENTERN(n) do { \
|
||||
int _n = (n); \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: %d", _n); \
|
||||
int n_ = (n); \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: %d", n_); \
|
||||
} while (0)
|
||||
#define ENTERS(s) do { \
|
||||
const char *_s = (s); \
|
||||
if (_s == NULL) \
|
||||
const char *s_ = (s); \
|
||||
if (s_ == NULL) \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: NULL"); \
|
||||
else \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: '%s'", _s); \
|
||||
openpam_log(PAM_LOG_DEBUG, "entering: '%s'", s_); \
|
||||
} while (0)
|
||||
#define RETURNV() openpam_log(PAM_LOG_DEBUG, "returning")
|
||||
#define RETURNC(c) do { \
|
||||
int _c = (c); \
|
||||
if (_c >= 0 && _c < PAM_NUM_ERRORS) \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %s", pam_err_name[_c]); \
|
||||
int c_ = (c); \
|
||||
if (c_ >= 0 && c_ < PAM_NUM_ERRORS) \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %s", pam_err_name[c_]); \
|
||||
else \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %d!", _c); \
|
||||
return (_c); \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %d!", c_); \
|
||||
return (c_); \
|
||||
} while (0)
|
||||
#define RETURNN(n) do { \
|
||||
int _n = (n); \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %d", _n); \
|
||||
return (_n); \
|
||||
int n_ = (n); \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %d", n_); \
|
||||
return (n_); \
|
||||
} while (0)
|
||||
#define RETURNP(p) do { \
|
||||
const void *_p = (p); \
|
||||
if (_p == NULL) \
|
||||
const void *p_ = (p); \
|
||||
if (p_ == NULL) \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning NULL"); \
|
||||
else \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %p", _p); \
|
||||
return (_p); \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning %p", p_); \
|
||||
return (p_); \
|
||||
} while (0)
|
||||
#define RETURNS(s) do { \
|
||||
const char *_s = (s); \
|
||||
if (_s == NULL) \
|
||||
const char *s_ = (s); \
|
||||
if (s_ == NULL) \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning NULL"); \
|
||||
else \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning '%s'", _s); \
|
||||
return (_s); \
|
||||
openpam_log(PAM_LOG_DEBUG, "returning '%s'", s_); \
|
||||
return (s_); \
|
||||
} while (0)
|
||||
#else
|
||||
#define ENTER()
|
||||
|
|
|
@ -36,24 +36,24 @@
|
|||
#include "openpam_impl.h"
|
||||
|
||||
#define subst_char(ch) do { \
|
||||
int _ch = (ch); \
|
||||
int ch_ = (ch); \
|
||||
if (buf && len < *bufsize) \
|
||||
*buf++ = _ch; \
|
||||
*buf++ = ch_; \
|
||||
++len; \
|
||||
} while (0)
|
||||
|
||||
#define subst_string(s) do { \
|
||||
const char *_s = (s); \
|
||||
while (*_s) \
|
||||
subst_char(*_s++); \
|
||||
const char *s_ = (s); \
|
||||
while (*s_) \
|
||||
subst_char(*s_++); \
|
||||
} while (0)
|
||||
|
||||
#define subst_item(i) do { \
|
||||
int _i = (i); \
|
||||
const void *_p; \
|
||||
ret = pam_get_item(pamh, _i, &_p); \
|
||||
if (ret == PAM_SUCCESS && _p != NULL) \
|
||||
subst_string(_p); \
|
||||
int i_ = (i); \
|
||||
const void *p_; \
|
||||
ret = pam_get_item(pamh, i_, &p_); \
|
||||
if (ret == PAM_SUCCESS && p_ != NULL) \
|
||||
subst_string(p_); \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue