Switch to using vsyslog/vfprintf in the linux case as well
Switch to using vsyslog/vfprintf in the linux case as well

Fixes a one byte heap overwrite if called with a large buffer.

Consider the follow scenario:

size = (unsigned int)snprintf(NULL, 0, DEBUG_STR, file, line, func);
va_start(ap, fmt);
size += (unsigned int)vsnprintf(NULL, 0, fmt, ap);

Size now contains length but without counting the \0

    out = malloc(size);

No room allocated for the terminating \0

 if (out) {
    size = (unsigned int)sprintf(out, DEBUG_STR, file, line, func);
    vsprintf(&out[size], fmt, ap);
    va_end(ap);
 }

vsprintf will terminate the out buffer with a \0 outside of the allocated area.

Yubico/pam-u2f,Yubico/pam-u2f,Yubico/pam-u2f