X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/62078c1601192c2594b954a122ac44a0c319c9bd..b1cb08b256587f6c5d2c484438d942e58583ba88:/keydb_file.c diff --git a/keydb_file.c b/keydb_file.c index ba8dc2e..a132ea7 100644 --- a/keydb_file.c +++ b/keydb_file.c @@ -81,13 +81,15 @@ int fetch_key(uint64_t keyid, struct openpgp_publickey **publickey, char keyfile[1024]; int fd = -1; - snprintf(keyfile, 1023, "%s/0x%llX", config.file_dbpath, + snprintf(keyfile, 1023, "%s/0x%llX", config.db_dir, keyid & 0xFFFFFFFF); fd = open(keyfile, O_RDONLY); // | O_SHLOCK); if (fd > -1) { read_openpgp_stream(file_fetchchar, &fd, &packets); parse_keys(packets, publickey); + free_packet_list(packets); + packets = NULL; close(fd); } @@ -113,7 +115,7 @@ int store_key(struct openpgp_publickey *publickey, bool intrans, bool update) char keyfile[1024]; int fd = -1; - snprintf(keyfile, 1023, "%s/0x%llX", config.file_dbpath, + snprintf(keyfile, 1023, "%s/0x%llX", config.db_dir, get_keyid(publickey) & 0xFFFFFFFF); fd = open(keyfile, O_WRONLY | O_CREAT, 0664); // | O_EXLOCK); @@ -125,6 +127,8 @@ int store_key(struct openpgp_publickey *publickey, bool intrans, bool update) write_openpgp_stream(file_putchar, &fd, packets); close(fd); + free_packet_list(packets); + packets = NULL; } return (fd > -1); @@ -142,7 +146,7 @@ int delete_key(uint64_t keyid, bool intrans) { char keyfile[1024]; - snprintf(keyfile, 1023, "%s/0x%llX", config.file_dbpath, + snprintf(keyfile, 1023, "%s/0x%llX", config.db_dir, keyid & 0xFFFFFFFF); return unlink(keyfile);