diff options
author | Uri Simchoni <uri@samba.org> | 2017-11-19 13:14:14 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-11-29 12:50:49 +0100 |
commit | 06859547f0b2a4cd1792599526184042d60d4fb0 (patch) | |
tree | 0d024714d1a4d1d42d8d3cdf8f09033488e4d74f /nsswitch | |
parent | 1da17204344a99a3bfa289355a996027a21814b8 (diff) | |
download | samba-06859547f0b2a4cd1792599526184042d60d4fb0.tar.gz |
pam_winbind: avoid non-literal-format warning
Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed Nov 29 12:50:49 CET 2017 on sn-devel-144
Diffstat (limited to 'nsswitch')
-rw-r--r-- | nsswitch/pam_winbind.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c index 3723b17ad42..e14fcfeb263 100644 --- a/nsswitch/pam_winbind.c +++ b/nsswitch/pam_winbind.c @@ -174,6 +174,10 @@ static inline void textdomain_init(void) /* some syslogging */ +static void _pam_log_int(const pam_handle_t *pamh, + int err, + const char *format, + va_list args) PRINTF_ATTRIBUTE(3, 0); #ifdef HAVE_PAM_VSYSLOG static void _pam_log_int(const pam_handle_t *pamh, @@ -189,21 +193,26 @@ static void _pam_log_int(const pam_handle_t *pamh, const char *format, va_list args) { - char *format2 = NULL; + char *base = NULL; + va_list args2; const char *service; int ret; + va_copy(args2, args); + pam_get_item(pamh, PAM_SERVICE, (const void **) &service); - ret = asprintf(&format2, "%s(%s): %s", MODULE_NAME, service, format); + ret = vasprintf(&base, format, args); if (ret == -1) { /* what else todo ? */ - vsyslog(err, format, args); + vsyslog(err, format, args2); + va_end(args2); return; } - vsyslog(err, format2, args); - SAFE_FREE(format2); + syslog(err, "%s(%s): %s", MODULE_NAME, service, base); + SAFE_FREE(base); + va_end(args2); } #endif /* HAVE_PAM_VSYSLOG */ @@ -714,6 +723,11 @@ static int _make_remark(struct pwb_context *ctx, static int _make_remark_v(struct pwb_context *ctx, int type, const char *format, + va_list args) PRINTF_ATTRIBUTE(3, 0); + +static int _make_remark_v(struct pwb_context *ctx, + int type, + const char *format, va_list args) { char *var; |