浏览代码

tar: don't assume root is uid 0

This is not true for Tandem NonStop Kernel.  See Joachim Schmitz's
comment in <http://bugs.gnu.org/10305#111>.
* gnulib.modules: Add root-uid.
* src/extract.c: Include <root-uid.h>.
(extr_init): Don't assume root is uid 0.
Paul Eggert 12 年之前
父节点
当前提交
1cd2725227
共有 2 个文件被更改,包括 3 次插入1 次删除
  1. 1 0
      gnulib.modules
  2. 2 1
      src/extract.c

+ 1 - 0
gnulib.modules

@@ -45,6 +45,7 @@ quote
 quotearg
 readlinkat
 renameat
+root-uid
 rpmatch
 safe-read
 savedir

+ 2 - 1
src/extract.c

@@ -23,6 +23,7 @@
 #include <quotearg.h>
 #include <errno.h>
 #include <priv-set.h>
+#include <root-uid.h>
 #include <utimens.h>
 
 #include "common.h"
@@ -153,7 +154,7 @@ struct string_list
 void
 extr_init (void)
 {
-  we_are_root = geteuid () == 0;
+  we_are_root = geteuid () == ROOT_UID;
   same_permissions_option += we_are_root;
   same_owner_option += we_are_root;