This file is indexed.

/usr/include/lfp/spawn.h is in libfixposix-dev 20110316.git47f17f7-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*******************************************************************************/
/* Permission is hereby granted, free of charge, to any person or organization */
/* obtaining a copy of the software and accompanying documentation covered by  */
/* this license (the "Software") to use, reproduce, display, distribute,       */
/* execute, and transmit the Software, and to prepare derivative works of the  */
/* Software, and to permit third-parties to whom the Software is furnished to  */
/* do so, all subject to the following:                                        */
/*                                                                             */
/* The copyright notices in the Software and this entire statement, including  */
/* the above license grant, this restriction and the following disclaimer,     */
/* must be included in all copies of the Software, in whole or in part, and    */
/* all derivative works of the Software, unless such copies or derivative      */
/* works are solely in the form of machine-executable object code generated by */
/* a source language processor.                                                */
/*                                                                             */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  */
/* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,    */
/* FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT   */
/* SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE   */
/* FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, */
/* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER */
/* DEALINGS IN THE SOFTWARE.                                                   */
/*******************************************************************************/

#if !defined(_LFP_SPAWN_H_)
# define _LFP_SPAWN_H_

#include <lfp/aux.h>

CPLUSPLUS_GUARD

#include <lfp/fcntl.h>
#include <lfp/signal.h>

#include <inttypes.h>
#include <sys/types.h>

typedef struct {
    int initialized;
    int allocated;
    struct lfp_spawn_action *actions;
} lfp_spawn_file_actions_t;

int lfp_spawn_file_actions_init(lfp_spawn_file_actions_t *file_actions);

int lfp_spawn_file_actions_destroy(lfp_spawn_file_actions_t *file_actions);

int lfp_spawn_file_actions_addopen(lfp_spawn_file_actions_t *file_actions,
                                   int fd, const char *path,
                                   uint64_t oflags, mode_t mode);

int lfp_spawn_file_actions_addclose(lfp_spawn_file_actions_t *file_actions,
                                    int fd);

int lfp_spawn_file_actions_adddup2(lfp_spawn_file_actions_t *file_actions,
                                   int fd, int newfd);

typedef struct {
    uint32_t flags;
    sigset_t sigdefault;
    sigset_t sigmask;
    pid_t    pgroup;
    uid_t    uid;
    gid_t    gid;
    char    *chdir_path;
    char    *pts_path;
} lfp_spawnattr_t;

typedef enum {
        LFP_SPAWN_SETSIGMASK    = 1 << 0,
#define LFP_SPAWN_SETSIGMASK    ( 1 << 0 )
        LFP_SPAWN_SETSIGDEFAULT = 1 << 1,
#define LFP_SPAWN_SETSIGDEFAULT ( 1 << 1 )
        LFP_SPAWN_SETPGROUP     = 1 << 2,
#define LFP_SPAWN_SETPGROUP     ( 1 << 2 )
        LFP_SPAWN_RESETIDS      = 1 << 3,
#define LFP_SPAWN_RESETIDS      ( 1 << 3 )
        LFP_SPAWN_SETUID        = 1 << 4,
#define LFP_SPAWN_SETUID        ( 1 << 4 )
        LFP_SPAWN_SETGID        = 1 << 5,
#define LFP_SPAWN_SETGID        ( 1 << 5 )
        LFP_SPAWN_SETCWD        = 1 << 6,
#define LFP_SPAWN_SETCWD        ( 1 << 6 )
        LFP_SPAWN_SETSID        = 1 << 7,
#define LFP_SPAWN_SETSID        ( 1 << 7 )
        LFP_SPAWN_SETCTTY       = 1 << 8,
#define LFP_SPAWN_SETCTTY       ( 1 << 8 )
} lfp_spawnattr_flags;

int lfp_spawnattr_init(lfp_spawnattr_t *attr);
int lfp_spawnattr_destroy(lfp_spawnattr_t *attr);

int lfp_spawnattr_getflags(lfp_spawnattr_t *attr, uint32_t *flags);
int lfp_spawnattr_setflags(lfp_spawnattr_t *attr, const uint32_t flags);

int lfp_spawnattr_getsigmask(lfp_spawnattr_t *attr, sigset_t *sigmask);
int lfp_spawnattr_setsigmask(lfp_spawnattr_t *attr, const sigset_t *sigmask);

int lfp_spawnattr_getsigdefault(lfp_spawnattr_t *attr, sigset_t *sigdefault);
int lfp_spawnattr_setsigdefault(lfp_spawnattr_t *attr, const sigset_t *sigdefault);

int lfp_spawnattr_getpgroup(lfp_spawnattr_t *attr, pid_t *pgroup);
int lfp_spawnattr_setpgroup(lfp_spawnattr_t *attr, const pid_t pgroup);

int lfp_spawnattr_setsid(lfp_spawnattr_t *attr);

int lfp_spawnattr_getctty(lfp_spawnattr_t *attr, char **path);
int lfp_spawnattr_setctty(lfp_spawnattr_t *attr, const char *path);

int lfp_spawnattr_getcwd(lfp_spawnattr_t *attr, char **path);
int lfp_spawnattr_setcwd(lfp_spawnattr_t *attr, const char *path);

int lfp_spawnattr_getuid(lfp_spawnattr_t *attr, uid_t *uid);
int lfp_spawnattr_setuid(lfp_spawnattr_t *attr, const uid_t uid);

int lfp_spawnattr_getgid(lfp_spawnattr_t *attr, gid_t *gid);
int lfp_spawnattr_setgid(lfp_spawnattr_t *attr, const gid_t gid);

int lfp_spawn(pid_t *restrict pid,
              const char *restrict path,
              char *const argv[restrict],
              char *const envp[restrict],
              const lfp_spawn_file_actions_t *restrict file_actions,
              const lfp_spawnattr_t *restrict attr);

int lfp_spawnp(pid_t *restrict pid,
               const char *restrict file,
               char *const argv[restrict],
               char *const envp[restrict],
               const lfp_spawn_file_actions_t *restrict file_actions,
               const lfp_spawnattr_t *restrict attr);

END_CPLUSPLUS_GUARD

#endif /* _LFP_SPAWN_H_ */