Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPascal Ernster <pacman-dev@hardfalcon.net>2021-01-21 03:49:58 +0100
committerAllan McRae <allan@archlinux.org>2021-01-21 17:17:37 +1000
commit05aefb8f82d856626598ef6a3f49ff8d5f623bf5 (patch)
tree28ce7cb78a17283f99b969c7572df9c20dafccae
parent1c4e07989940a435483563be7c12915b32289fbe (diff)
pacman: correct length of ".files.sig" string
Running "pacman -Sc" deletes /var/lib/pacman/sync/*.files.sig due to a wrong string length being used when checking filename suffixes in that directory. In turn, these missing signature files cause both the corresponding "*.files" files and their signatures being forcibly re-downloaded again when "pacman -Sy" is executed. Since official Arch Linux repos don't use signed database files yet, this only affects people who use custom repos with signed database files, for which they have set the "SigLevel" directive to "Required" or "DatabaseRequired" in /etc/pacman.conf. Fixes FS#66472 Signed-off-by: Pascal Ernster <pacman-dev@hardfalcon.net> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--src/pacman/sync.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index a05af5da..9ec4c92e 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -105,7 +105,7 @@ static int sync_cleandb(const char *dbpath)
dbname = strndup(dname, len - 7);
} else if(len > 6 && strcmp(dname + len - 6, ".files") == 0) {
dbname = strndup(dname, len - 6);
- } else if(len > 6 && strcmp(dname + len - 6, ".files.sig") == 0) {
+ } else if(len > 10 && strcmp(dname + len - 10, ".files.sig") == 0) {
dbname = strndup(dname, len - 10);
} else {
ret += unlink_verbose(path, 0);