summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/state.c4
-rw-r--r--src/update.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/state.c b/src/state.c
index d886754..1b1b333 100644
--- a/src/state.c
+++ b/src/state.c
@@ -502,7 +502,9 @@ int apk_state_lock_name(struct apk_state *state,
}
/* If the chosen package is installed, all is done here */
- if (oldpkg == newpkg && !(newpkg->name->flags & APK_NAME_REINSTALL))
+ if (oldpkg == newpkg &&
+ (newpkg == NULL ||
+ !(newpkg->name->flags & APK_NAME_REINSTALL)))
return 0;
/* Track change */
diff --git a/src/update.c b/src/update.c
index 5bf7295..eed5d45 100644
--- a/src/update.c
+++ b/src/update.c
@@ -23,7 +23,7 @@ static int update_main(void *ctx, struct apk_database *db, int argc, char **argv
static struct apk_applet apk_update = {
.name = "update",
.help = "Update repository indexes from all remote repositories.",
- .open_flags = APK_OPENF_READ | APK_OPENF_NO_STATE,
+ .open_flags = APK_OPENF_WRITE,
.forced_flags = APK_UPDATE_CACHE,
.main = update_main,
};