53 lines
1.4 KiB
Diff
53 lines
1.4 KiB
Diff
From 91b7b2fd5ac354e1f4fa2e1f04247242aeebbf23 Mon Sep 17 00:00:00 2001
|
|
From: Juan RP <xtraeme@gmail.com>
|
|
Date: Sun, 11 Jan 2015 11:01:09 +0100
|
|
Subject: [PATCH] Use a sane umask(2) before unpacking package files.
|
|
|
|
See https://github.com/voidlinux/void-packages/issues/835
|
|
for more information.
|
|
---
|
|
NEWS | 3 +++
|
|
lib/package_unpack.c | 8 +++++++-
|
|
2 files changed, 10 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/package_unpack.c b/lib/package_unpack.c
|
|
index 237883f..d655cee 100644
|
|
--- lib/package_unpack.c
|
|
+++ lib/package_unpack.c
|
|
@@ -1,5 +1,5 @@
|
|
/*-
|
|
- * Copyright (c) 2008-2014 Juan Romero Pardines.
|
|
+ * Copyright (c) 2008-2015 Juan Romero Pardines.
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
@@ -502,6 +502,7 @@ xbps_unpack_binary_pkg(struct xbps_handle *xhp, xbps_dictionary_t pkg_repod)
|
|
const char *pkgver;
|
|
char *bpkg = NULL;
|
|
int pkg_fd = -1, rv = 0;
|
|
+ mode_t myumask;
|
|
|
|
assert(xbps_object_type(pkg_repod) == XBPS_TYPE_DICTIONARY);
|
|
|
|
@@ -529,6 +530,8 @@ xbps_unpack_binary_pkg(struct xbps_handle *xhp, xbps_dictionary_t pkg_repod)
|
|
archive_read_support_compression_xz(ar);
|
|
archive_read_support_format_tar(ar);
|
|
|
|
+ myumask = umask(022);
|
|
+
|
|
pkg_fd = open(bpkg, O_RDONLY|O_CLOEXEC);
|
|
if (pkg_fd == -1) {
|
|
rv = errno;
|
|
@@ -594,5 +597,8 @@ out:
|
|
if (bpkg)
|
|
free(bpkg);
|
|
|
|
+ /* restore */
|
|
+ umask(myumask);
|
|
+
|
|
return rv;
|
|
}
|
|
--
|
|
2.2.1
|
|
|