diff options
author | Chantry Xavier <shiningxc@gmail.com> | 2008-01-13 11:08:59 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-01-13 19:51:37 +0100 |
commit | 8186dc11a90dbc310acaad7ee867ee995adbd6ed (patch) | |
tree | 796df8cc0fef61ecb4ad27b3d1b5ec586456a532 | |
parent | bbe02ec57fd56670dfe0bc08d981ce8a1aa31370 (diff) | |
download | pacman-8186dc11a90dbc310acaad7ee867ee995adbd6ed.tar.gz pacman-8186dc11a90dbc310acaad7ee867ee995adbd6ed.tar.xz |
Ensure correct dir permissions in the database.
Fix for FS#9176.
A previous commit (6e8daa553bbd5) already forced all database files to 644.
Now the directories are also forced to 755.
Additionally, repo-add now sets the umask to 022, just like makepkg does, to
fix the problem at its root.
Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | lib/libalpm/util.c | 2 | ||||
-rw-r--r-- | scripts/repo-add.sh.in | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index d09b9b14..5959482d 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -399,6 +399,8 @@ int _alpm_unpack(const char *archive, const char *prefix, const char *fn) if(S_ISREG(st->st_mode)) { archive_entry_set_mode(entry, 0644); + } else if(S_ISDIR(st->st_mode)) { + archive_entry_set_mode(entry, 0755); } if (fn && strcmp(fn, entryname)) { diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 98191b62..c7aa11a2 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -28,6 +28,9 @@ confdir='@sysconfdir@' FORCE=0 REPO_DB_FILE="" +# ensure we have a sane umask set +umask 0022 + msg() { local mesg=$1; shift printf "==> ${mesg}\n" "$@" >&1 |