From cea40d697824da4b3941f0d1814de14d364bb791 Mon Sep 17 00:00:00 2001 From: Aaron Ball Date: Fri, 26 Oct 2018 12:14:04 -0600 Subject: Moved key_release call to main.c We should never free arguments passed to a function unless the function is a destructor, which gpg_encrypt is not. The keyids array originates in main, so this moves the release call to main. --- src/gpg.c | 4 ++-- src/main.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gpg.c b/src/gpg.c index 6509f45..335d03f 100644 --- a/src/gpg.c +++ b/src/gpg.c @@ -145,9 +145,9 @@ gpgme_key_t* gpg_keyids_to_key_t(gpgme_ctx_t ctx, char** keyids) { return out; } - void gpg_keyids_release(char** keyids) { int i = 0; + while(keyids[i] != NULL) { free(keyids[i]); i++; @@ -156,6 +156,7 @@ void gpg_keyids_release(char** keyids) { } + void gpg_dump_key(gpgme_key_t key) { printf("Recipient: %s\n", key->fpr); printf(" protocol: %d\n", key->protocol); @@ -236,7 +237,6 @@ size_t gpg_encrypt_file(char* infile, char* outfile, char** keyids) { fclose(refd); // cleanup - gpg_keyids_release(keyids); gpgme_data_release(indata); gpgme_data_release(outdata); gpgme_release(ctx); diff --git a/src/main.c b/src/main.c index 162982a..f5ae1c7 100644 --- a/src/main.c +++ b/src/main.c @@ -60,6 +60,7 @@ int main(int argc, char* argv[]) { gpg_encrypt_file(tmpfile, argv[1], keyids); // Clean up tmpfile + gpg_keyids_release(keyids); unlink(tmpfile); return 0; } -- cgit v1.2.3