From ffa03a21d86f770a526e1d8b9bfa195fe09f344b Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Tue, 11 Nov 2008 09:00:10 +0200 Subject: [PATCH] db: remember empty .apks --- TODO | 1 - src/database.c | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/TODO b/TODO index a504e38..f31352e 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,3 @@ -- Empty .APK is not remembered as installed - Index/pkginfo reader: same field multiple times -> memleak - Compress index and db files diff --git a/src/database.c b/src/database.c index a1c0300..15757ff 100644 --- a/src/database.c +++ b/src/database.c @@ -323,6 +323,9 @@ static int apk_db_write_fdb(struct apk_database *db, int fd) n += apk_hexdump_format(sizeof(buf)-n, &buf[n], APK_BLOB_BUF(pkg->csum)); buf[n++] = '\n'; + if (write(fd, buf, n) != n) + return -1; + n = 0; dir = NULL; hlist_for_each_entry(file, c2, &pkg->owned_files, pkg_files_list) { @@ -340,7 +343,8 @@ static int apk_db_write_fdb(struct apk_database *db, int fd) "F%s\n", file->filename); - write(fd, buf, n); + if (write(fd, buf, n) != n) + return -1; n = 0; } } @@ -523,8 +527,6 @@ static int apk_db_write_config(struct apk_database *db) void apk_db_close(struct apk_database *db) { - apk_db_write_config(db); - apk_hash_free(&db->available.names); apk_hash_free(&db->available.packages); apk_hash_free(&db->installed.dirs);