summaryrefslogtreecommitdiff
path: root/nsswitch
diff options
context:
space:
mode:
authorUri Simchoni <uri@samba.org>2017-11-19 13:14:14 +0000
committerAndrew Bartlett <abartlet@samba.org>2017-11-29 12:50:49 +0100
commit06859547f0b2a4cd1792599526184042d60d4fb0 (patch)
tree0d024714d1a4d1d42d8d3cdf8f09033488e4d74f /nsswitch
parent1da17204344a99a3bfa289355a996027a21814b8 (diff)
downloadsamba-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.c24
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;