Print this page
7126 NSS_XbyY_FINI has too much logic for a function-like macro
*** 667,684 ****
(str)->returnval = 0, \
(str)->returnlen = 0, \
(str)->h_errno = 0, \
(str)->erange = 0)
! #define NSS_XbyY_FINI(str) (\
! (str)->returnval == 0 && (str)->erange && (errno = ERANGE), \
! (str)->returnval)
#define NSS_PACKED_CRED_CHECK(buf, ruid, euid) (\
((nss_pheader_t *)(buf))->p_ruid == (ruid) && \
((nss_pheader_t *)(buf))->p_euid == (euid))
extern char **_nss_netdb_aliases(const char *, int, char *, int);
extern nss_status_t nss_default_key2str(void *, size_t, nss_XbyY_args_t *,
const char *, int, size_t *);
extern nss_status_t nss_packed_arg_init(void *, size_t, nss_db_root_t *,
nss_db_initf_t *, int *,
--- 667,683 ----
(str)->returnval = 0, \
(str)->returnlen = 0, \
(str)->h_errno = 0, \
(str)->erange = 0)
! #define NSS_XbyY_FINI(str) _nss_XbyY_fini(str)
#define NSS_PACKED_CRED_CHECK(buf, ruid, euid) (\
((nss_pheader_t *)(buf))->p_ruid == (ruid) && \
((nss_pheader_t *)(buf))->p_euid == (euid))
+ extern void *_nss_XbyY_fini(nss_XbyY_args_t *);
extern char **_nss_netdb_aliases(const char *, int, char *, int);
extern nss_status_t nss_default_key2str(void *, size_t, nss_XbyY_args_t *,
const char *, int, size_t *);
extern nss_status_t nss_packed_arg_init(void *, size_t, nss_db_root_t *,
nss_db_initf_t *, int *,