Fix a bug in gpass_cli : sprintf needs final 0 while we must not add it for encryption
This commit is contained in:
parent
0cc706d260
commit
9b9c36070b
|
@ -116,7 +116,7 @@ static void encrypt_domain(struct gpass_parameters* params, char* domain,
|
||||||
unsigned char** res, unsigned* out_size)
|
unsigned char** res, unsigned* out_size)
|
||||||
{
|
{
|
||||||
EVP_CIPHER_CTX* evp_ctx;
|
EVP_CIPHER_CTX* evp_ctx;
|
||||||
unsigned size = 2+strlen(domain)+1+strlen(params->username)+1;
|
unsigned size = 2+strlen(domain)+1+strlen(params->username);
|
||||||
unsigned char* buffer, *tmp;
|
unsigned char* buffer, *tmp;
|
||||||
|
|
||||||
if (params->verbose)
|
if (params->verbose)
|
||||||
|
@ -125,10 +125,10 @@ static void encrypt_domain(struct gpass_parameters* params, char* domain,
|
||||||
if ((size % BLOCK_SIZE))
|
if ((size % BLOCK_SIZE))
|
||||||
size = ((size/BLOCK_SIZE)+1)*BLOCK_SIZE;
|
size = ((size/BLOCK_SIZE)+1)*BLOCK_SIZE;
|
||||||
|
|
||||||
buffer = malloc(size);
|
buffer = malloc(size+1); // Cause snprintf() add a final \0
|
||||||
memset(buffer, 0, size);
|
memset(buffer, 0, size+1);
|
||||||
|
|
||||||
snprintf((char*)buffer, size, "@@%s;%s", domain, params->username);
|
snprintf((char*)buffer, size+1, "@@%s;%s", domain, params->username);
|
||||||
|
|
||||||
tmp = malloc(size);
|
tmp = malloc(size);
|
||||||
*res = malloc(size*2);
|
*res = malloc(size*2);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user