summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/util.c2
-rw-r--r--scripts/repo-add.sh.in3
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