| 1493 | }; |
| 1494 | #endif |
| 1495 | int |
| 1496 | sys_linkat(struct thread *td, struct linkat_args *uap) |
| 1497 | { |
| 1498 | int flag; |
| 1499 | |
| 1500 | flag = uap->flag; |
| 1501 | if ((flag & ~(AT_SYMLINK_FOLLOW | AT_RESOLVE_BENEATH)) != 0) |
| 1502 | return (EINVAL); |
| 1503 | |
| 1504 | return (kern_linkat(td, uap->fd1, uap->fd2, uap->path1, uap->path2, |
| 1505 | UIO_USERSPACE, at2cnpflags(flag, AT_SYMLINK_FOLLOW | |
| 1506 | AT_RESOLVE_BENEATH))); |
| 1507 | } |
| 1508 | |
| 1509 | int hardlink_check_uid = 0; |
| 1510 | SYSCTL_INT(_security_bsd, OID_AUTO, hardlink_check_uid, CTLFLAG_RW, |
nothing calls this directly
no test coverage detected