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);