diff options
author | Aaron Ball <nullspoon@oper.io> | 2018-10-26 12:14:04 -0600 |
---|---|---|
committer | Aaron Ball <nullspoon@oper.io> | 2018-10-26 12:14:04 -0600 |
commit | cea40d697824da4b3941f0d1814de14d364bb791 (patch) | |
tree | 972ca88ce0e06f2c05716e4bc71a2b9c996fe59f /src | |
parent | e1db7506e39532c6c3ef33e7bd2a3dc490b7f807 (diff) | |
download | gpgedit-cea40d697824da4b3941f0d1814de14d364bb791.tar.gz gpgedit-cea40d697824da4b3941f0d1814de14d364bb791.tar.xz |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/gpg.c | 4 | ||||
-rw-r--r-- | src/main.c | 1 |
2 files changed, 3 insertions, 2 deletions
@@ -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); @@ -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; } |