Пример #1
0
int unlinkat(int dirfd, const char *pathname, int flags) {
    if (fileinpath(pathname, "SUDO_ALLOWED") ||
            getenv("SYS_UNLINK")) {

        return sys_unlinkat(dirfd, pathname, flags);
    }

    debug( "unlinkat: ");
    errno = EPERM;
    return -1;
}
Пример #2
0
int
linux_sys_unlinkat(struct lwp *l, const struct linux_sys_unlinkat_args *uap, register_t *retval)
{
	/* {
		syscallarg(int) fd;
		syscallarg(const char *) path;
		syscallarg(int) flag;
	} */
	struct sys_unlinkat_args ua;
	int error;

	SCARG(&ua, fd) = SCARG(uap, fd);
	SCARG(&ua, path) = SCARG(uap, path);
	SCARG(&ua, flag) = linux_to_bsd_atflags(SCARG(uap, flag));

	error = sys_unlinkat(l, &ua, retval);
	if (error == EPERM)
		error = linux_unlink_dircheck(SCARG(uap, path));

	return error;
}
Пример #3
0
int unlinkat(int dirfd, const char* pathname, int flags)
{
	return sys_unlinkat(dirfd, pathname, flags);
}
Пример #4
0
long sys_unlink(const char* name)
{
  return sys_unlinkat(AT_FDCWD, name, 0);
}