OpenCoverage

write-any-file.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/write-any-file.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Determine whether we can write any file.-
2-
3 Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.-
4-
5 This program is free software: you can redistribute it and/or modify-
6 it under the terms of the GNU General Public License as published by-
7 the Free Software Foundation; either version 3 of the License, or-
8 (at your option) any later version.-
9-
10 This program is distributed in the hope that it will be useful,-
11 but WITHOUT ANY WARRANTY; without even the implied warranty of-
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
13 GNU General Public License for more details.-
14-
15 You should have received a copy of the GNU General Public License-
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
17-
18/* Written by Paul Eggert. */-
19-
20#include <config.h>-
21-
22#include "write-any-file.h"-
23#include "priv-set.h"-
24#include "root-uid.h"-
25-
26#include <unistd.h>-
27-
28/* Return true if we know that we can write any file, including-
29 writing directories. */-
30-
31bool-
32can_write_any_file (void)-
33{-
34 static bool initialized;-
35 static bool can_write;-
36-
37 if (! initialized)
! initializedDescription
TRUEevaluated 26 times by 3 tests
Evaluated by:
  • cp
  • mv
  • rm
FALSEevaluated 130 times by 1 test
Evaluated by:
  • rm
26-130
38 {-
39 bool can = false;-
40#if defined PRIV_FILE_DAC_WRITE-
41 can = (priv_set_ismember (PRIV_FILE_DAC_WRITE) == 1);-
42#else-
43 /* In traditional Unix, only root can unlink directories. */-
44 can = (geteuid () == ROOT_UID);-
45#endif-
46 can_write = can;-
47 initialized = true;-
48 }
executed 26 times by 3 tests: end of block
Executed by:
  • cp
  • mv
  • rm
26
49-
50 return can_write;
executed 156 times by 3 tests: return can_write;
Executed by:
  • cp
  • mv
  • rm
156
51}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2