diff --git a/channels/client/addin.c b/channels/client/addin.c index ddfeccacd..86b9f43e4 100644 --- a/channels/client/addin.c +++ b/channels/client/addin.c @@ -130,7 +130,7 @@ FREERDP_ADDIN** freerdp_channels_list_client_static_addins(LPSTR pszName, LPSTR } sprintf_s(pAddin->cName, ARRAYSIZE(pAddin->cName), "%s", CLIENT_STATIC_ADDIN_TABLE[i].name); - _snprintf(pAddin->cSubsystem, ARRAYSIZE(pAddin->cSubsystem), "%s", subsystems[j].name); + sprintf_s(pAddin->cSubsystem, ARRAYSIZE(pAddin->cSubsystem), "%s", subsystems[j].name); pAddin->dwFlags = FREERDP_ADDIN_CLIENT; pAddin->dwFlags |= FREERDP_ADDIN_STATIC; pAddin->dwFlags |= FREERDP_ADDIN_NAME; diff --git a/libfreerdp/crypto/crypto.c b/libfreerdp/crypto/crypto.c index 983363cbb..5fb2d005c 100644 --- a/libfreerdp/crypto/crypto.c +++ b/libfreerdp/crypto/crypto.c @@ -218,7 +218,7 @@ char* crypto_cert_fingerprint(X509* xcert) UINT32 fp_len; BYTE fp[EVP_MAX_MD_SIZE]; X509_digest(xcert, EVP_sha1(), fp, &fp_len); - fp_buffer = (char*) calloc(fp_len, 3); + fp_buffer = (char*) calloc(fp_len + 1, 3); if (!fp_buffer) return NULL; @@ -227,11 +227,11 @@ char* crypto_cert_fingerprint(X509* xcert) for (i = 0; i < (fp_len - 1); i++) { - sprintf_s(p, fp_len * 3 - i, "%02"PRIx8":", fp[i]); + sprintf_s(p, (fp_len - i) * 3, "%02"PRIx8":", fp[i]); p = &fp_buffer[(i + 1) * 3]; } - sprintf_s(p, fp_len * 3 - i, "%02"PRIx8"", fp[i]); + sprintf_s(p, (fp_len - i) * 3, "%02"PRIx8"", fp[i]); return fp_buffer; }