diff options
author | John Hernandez <129467592+H3rnand3zzz@users.noreply.github.com> | 2023-04-13 10:14:54 +0200 |
---|---|---|
committer | John Hernandez <129467592+H3rnand3zzz@users.noreply.github.com> | 2023-04-13 17:16:55 +0200 |
commit | 5e8f1f9c853eff2fe49cc7f1dadb285b3c337c18 (patch) | |
tree | e774a94b78a72c9fc2e6bc8b3025375312cfc699 | |
parent | 766dc76e337c96e71edc698a8ee292014293c44f (diff) | |
download | profani-tty-5e8f1f9c853eff2fe49cc7f1dadb285b3c337c18.tar.gz |
Fix memory corruption crash
Under certain circumstances setting plain_str[len] to 0 might lead to crash and it does not follow the best practices as well. This change allows better handling of buffer copying and prevents crash.
-rw-r--r-- | src/pgp/gpg.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/pgp/gpg.c b/src/pgp/gpg.c index 8762660d..3ef69c1d 100644 --- a/src/pgp/gpg.c +++ b/src/pgp/gpg.c @@ -721,10 +721,9 @@ p_gpg_decrypt(const char* const cipher) char* plain_str = gpgme_data_release_and_get_mem(plain_data, &len); char* result = NULL; if (plain_str) { - plain_str[len] = 0; - result = g_strdup(plain_str); + result = strndup(plain_str, len); + gpgme_free(plain_str); } - gpgme_free(plain_str); if (passphrase_attempt) { passphrase = strdup(passphrase_attempt); |