OpenCoverage

pipe-safer.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/pipe-safer.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Invoke pipe, but avoid some glitches.-
2 Copyright (C) 2005-2006, 2009-2018 Free Software Foundation, Inc.-
3-
4 This program is free software: you can redistribute it and/or modify-
5 it under the terms of the GNU General Public License as published by-
6 the Free Software Foundation; either version 3 of the License, or-
7 (at your option) any later version.-
8-
9 This program is distributed in the hope that it will be useful,-
10 but WITHOUT ANY WARRANTY; without even the implied warranty of-
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
12 GNU General Public License for more details.-
13-
14 You should have received a copy of the GNU General Public License-
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
16-
17/* Written by Jim Meyering. */-
18-
19#include <config.h>-
20-
21#include "unistd-safer.h"-
22-
23#include <unistd.h>-
24#include <errno.h>-
25-
26/* Like pipe, but ensure that neither of the file descriptors is-
27 STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. Fail with ENOSYS on-
28 platforms that lack pipe. */-
29-
30int-
31pipe_safer (int fd[2])-
32{-
33#if HAVE_PIPE-
34 if (pipe (fd) == 0)
pipe (fd) == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
35 {-
36 int i;-
37 for (i = 0; i < 2; i++)
i < 2Description
TRUEnever evaluated
FALSEnever evaluated
0
38 {-
39 fd[i] = fd_safer (fd[i]);-
40 if (fd[i] < 0)
fd[i] < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
41 {-
42 int e = errno;-
43 close (fd[1 - i]);-
44 errno = e;-
45 return -1;
never executed: return -1;
0
46 }-
47 }
never executed: end of block
0
48-
49 return 0;
never executed: return 0;
0
50 }-
51#else-
52 errno = ENOSYS;-
53#endif-
54-
55 return -1;
never executed: return -1;
0
56}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2