Declare kdc log functions to be printf-like

And add a kdc_vlog() function.
This commit is contained in:
Nicolas Williams
2019-06-24 11:45:22 -05:00
parent 7fc90ce1c8
commit 9c51900238
5 changed files with 23 additions and 12 deletions

View File

@@ -60,10 +60,14 @@ kdc_openlog(krb5_context context,
krb5_set_warn_dest(context, config->logf);
}
#undef __attribute__
#define __attribute__(X)
char*
kdc_log_msg_va(krb5_context context,
krb5_kdc_configuration *config,
int level, const char *fmt, va_list ap)
__attribute__ ((__format__ (__printf__, 4, 0)))
{
char *msg;
krb5_vlog_msg(context, config->logf, &msg, level, fmt, ap);
@@ -74,6 +78,7 @@ char*
kdc_log_msg(krb5_context context,
krb5_kdc_configuration *config,
int level, const char *fmt, ...)
__attribute__ ((__format__ (__printf__, 4, 5)))
{
va_list ap;
char *s;
@@ -83,15 +88,23 @@ kdc_log_msg(krb5_context context,
return s;
}
void
kdc_vlog(krb5_context context,
krb5_kdc_configuration *config,
int level, const char *fmt, va_list ap)
__attribute__ ((__format__ (__printf__, 4, 0)))
{
free(kdc_log_msg_va(context, config, level, fmt, ap));
}
void
kdc_log(krb5_context context,
krb5_kdc_configuration *config,
int level, const char *fmt, ...)
__attribute__ ((__format__ (__printf__, 4, 5)))
{
va_list ap;
char *s;
va_start(ap, fmt);
s = kdc_log_msg_va(context, config, level, fmt, ap);
if(s) free(s);
free(kdc_log_msg_va(context, config, level, fmt, ap));
va_end(ap);
}