diff options
author | Timo Teräs <timo.teras@iki.fi> | 2022-04-05 10:31:20 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2022-04-05 10:31:57 +0300 |
commit | 232067b3d1399d97b5058440bd8282031053fa7c (patch) | |
tree | 3af363cdec1c6e67902673cb55b1ab481e4e6c9f /src | |
parent | 55e20d3e5b48eea29523b633492a167118dcc3bd (diff) | |
download | apk-tools-232067b3d1399d97b5058440bd8282031053fa7c.tar.gz apk-tools-232067b3d1399d97b5058440bd8282031053fa7c.tar.bz2 apk-tools-232067b3d1399d97b5058440bd8282031053fa7c.tar.xz apk-tools-232067b3d1399d97b5058440bd8282031053fa7c.zip |
db: fix atfd for access repository index
fixes #10834
Diffstat (limited to 'src')
-rw-r--r-- | src/database.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/database.c b/src/database.c index 6758e98..727b44f 100644 --- a/src/database.c +++ b/src/database.c @@ -2349,7 +2349,7 @@ int apk_db_add_repository(apk_database_t _db, apk_blob_t _repository) struct apk_repository *repo; struct apk_url_print urlp; apk_blob_t brepo, btag; - int repo_num, r, tag_id = 0; + int repo_num, r, tag_id = 0, atfd = AT_FDCWD; char buf[PATH_MAX], *url; brepo = _repository; @@ -2395,6 +2395,7 @@ int apk_db_add_repository(apk_database_t _db, apk_blob_t _repository) } else { if (db->autoupdate) apk_repository_update(db, repo); r = apk_repo_format_cache_index(APK_BLOB_BUF(buf), repo); + atfd = db->cache_fd; } } else { db->local_repos |= BIT(repo_num); @@ -2402,7 +2403,7 @@ int apk_db_add_repository(apk_database_t _db, apk_blob_t _repository) r = apk_repo_format_real_url(db->arch, repo, NULL, buf, sizeof(buf), &urlp); } if (r == 0) { - r = load_index(db, apk_istream_from_fd_url(db->cache_fd, buf, apk_db_url_since(db, 0)), repo_num); + r = load_index(db, apk_istream_from_fd_url(atfd, buf, apk_db_url_since(db, 0)), repo_num); } if (r != 0) { |