s3: Fix pam_smbpass logging on FreeBSD
authorVolker Lendecke <vl@samba.org>
Tue, 21 Sep 2010 19:16:31 +0000 (21:16 +0200)
committerVolker Lendecke <vl@samba.org>
Wed, 22 Sep 2010 22:42:28 +0000 (15:42 -0700)
source3/pam_smbpass/support.c

index 715a0f43bb64c255f96b874b4f726cf57bebbe00..4215c72991e26eca1828f2bbe284b5e9c605192e 100644 (file)
@@ -93,22 +93,20 @@ void _log_err( pam_handle_t *pamh, int err, const char *format, ... )
 void _log_err( pam_handle_t *pamh, int err, const char *format, ... )
 {
        va_list args;
-       const char tag[] = "(pam_smbpass) ";
        char *mod_format;
 
-       mod_format = SMB_MALLOC_ARRAY(char, sizeof(tag) + strlen(format));
-       /* try really, really hard to log something, since this may have
-          been a message about a malloc() failure... */
-       if (mod_format == NULL) {
+       if (asprintf(&mod_format, "(pam_smbpass) %s", format) == -1) {
+               /*
+                * try really, really hard to log something, since
+                * this may have been a message about a malloc()
+                * failure...
+                */
                va_start(args, format);
                vsyslog(err | LOG_AUTH, format, args);
                va_end(args);
                return;
        }
 
-       strncpy(mod_format, tag, strlen(tag)+1);
-       strlcat(mod_format, format, strlen(format)+1);
-
        va_start(args, format);
        vsyslog(err | LOG_AUTH, mod_format, args);
        va_end(args);