diff options
author | Allan McRae <allan@archlinux.org> | 2015-02-25 00:47:17 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2015-03-03 16:54:17 +1000 |
commit | d9b5cb238d7e1f7ec998ffd002e15cf9c1a48425 (patch) | |
tree | ddd9b929ee917e4ad5ad8f366314e9d58f6a5376 | |
parent | fc5be14dac50798024a6dee1d6c3a1acb0154314 (diff) | |
download | pacman-d9b5cb238d7e1f7ec998ffd002e15cf9c1a48425.tar.xz |
Abort of failure to add version file to empty local database
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | lib/libalpm/be_local.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index 6fd6cd5b..556157d8 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -384,6 +384,11 @@ static int local_db_add_version(alpm_db_t UNUSED *db, const char *dbpath) snprintf(dbverpath, PATH_MAX, "%sALPM_DB_VERSION", dbpath); dbverfile = fopen(dbverpath, "w"); + + if(dbverfile == NULL) { + return 1; + } + fprintf(dbverfile, "%zu\n", ALPM_LOCAL_DB_VERSION); fclose(dbverfile); @@ -397,7 +402,10 @@ static int local_db_create(alpm_db_t *db, const char *dbpath) dbpath, strerror(errno)); RET_ERR(db->handle, ALPM_ERR_DB_CREATE, -1); } - local_db_add_version(db, dbpath); + if(local_db_add_version(db, dbpath) != 0) { + return 1; + } + return 0; } @@ -459,7 +467,9 @@ static int local_db_validate(alpm_db_t *db) } } - local_db_add_version(db, dbpath); + if(local_db_add_version(db, dbpath) != 0) { + goto version_error; + } goto version_latest; } |