X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keydb_file.c;h=a132ea73c833d679aec4083da3d71ffdbfe1140e;hb=6a721665f41611f80cb878237b5d7fa650ccbe20;hp=ba8dc2e6bd63798a50eaff83f0d61b4bda71214e;hpb=62078c1601192c2594b954a122ac44a0c319c9bd;p=onak.git 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);