MCPcopy Index your code
hub / github.com/RsyncProject/rsync / check_basedir

Function check_basedir

t_secure_relpath.c:73–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

71}
72
73static void check_basedir(const char *basedir)
74{
75 int fd;
76 int saved_errno;
77
78 errno = 0;
79 fd = secure_relative_open(basedir, "ok", O_RDONLY | O_DIRECTORY, 0);
80 saved_errno = errno;
81
82 if (fd >= 0) {
83 fprintf(stderr,
84 "FAIL [basedir=%-12s]: returned valid fd %d -- expected -1 EINVAL\n",
85 basedir, fd);
86 close(fd);
87 errs++;
88 return;
89 }
90
91 if (saved_errno != EINVAL) {
92 fprintf(stderr,
93 "FAIL [basedir=%-12s]: rejected but errno=%d (%s), expected EINVAL\n",
94 basedir, saved_errno, strerror(saved_errno));
95 errs++;
96 return;
97 }
98
99 fprintf(stderr, "OK [basedir=%-12s]: rejected with EINVAL\n", basedir);
100}
101
102int main(int argc, char **argv)
103{

Callers 1

mainFunction · 0.85

Calls 2

secure_relative_openFunction · 0.85
strerrorFunction · 0.85

Tested by

no test coverage detected