linux: improve reporting for unsupported syscall flags
Filter out the flags we do support; previously we would print out the flag value verbatim. Reviewed By: dchagin Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30693
This commit is contained in:
parent
afce583571
commit
9d167945e8
@ -1757,10 +1757,11 @@ int
|
||||
linux_fchownat(struct thread *td, struct linux_fchownat_args *args)
|
||||
{
|
||||
char *path;
|
||||
int error, dfd, flag;
|
||||
int error, dfd, flag, unsupported;
|
||||
|
||||
if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) {
|
||||
linux_msg(td, "fchownat unsupported flag 0x%x", args->flag);
|
||||
unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH);
|
||||
if (unsupported != 0) {
|
||||
linux_msg(td, "fchownat unsupported flag 0x%x", unsupported);
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
|
@ -663,11 +663,12 @@ int
|
||||
linux_fstatat64(struct thread *td, struct linux_fstatat64_args *args)
|
||||
{
|
||||
char *path;
|
||||
int error, dfd, flag;
|
||||
int error, dfd, flag, unsupported;
|
||||
struct stat buf;
|
||||
|
||||
if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) {
|
||||
linux_msg(td, "fstatat64 unsupported flag 0x%x", args->flag);
|
||||
unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH);
|
||||
if (unsupported != 0) {
|
||||
linux_msg(td, "fstatat64 unsupported flag 0x%x", unsupported);
|
||||
return (EINVAL);
|
||||
}
|
||||
flag = (args->flag & LINUX_AT_SYMLINK_NOFOLLOW) ?
|
||||
@ -696,11 +697,12 @@ int
|
||||
linux_newfstatat(struct thread *td, struct linux_newfstatat_args *args)
|
||||
{
|
||||
char *path;
|
||||
int error, dfd, flag;
|
||||
int error, dfd, flag, unsupported;
|
||||
struct stat buf;
|
||||
|
||||
if (args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) {
|
||||
linux_msg(td, "fstatat unsupported flag 0x%x", args->flag);
|
||||
unsupported = args->flag & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH);
|
||||
if (unsupported != 0) {
|
||||
linux_msg(td, "fstatat unsupported flag 0x%x", unsupported);
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
@ -769,11 +771,12 @@ int
|
||||
linux_statx(struct thread *td, struct linux_statx_args *args)
|
||||
{
|
||||
char *path;
|
||||
int error, dirfd, flags;
|
||||
int error, dirfd, flags, unsupported;
|
||||
struct stat buf;
|
||||
|
||||
if (args->flags & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH)) {
|
||||
linux_msg(td, "statx unsupported flags 0x%x", args->flags);
|
||||
unsupported = args->flags & ~(LINUX_AT_SYMLINK_NOFOLLOW | LINUX_AT_EMPTY_PATH);
|
||||
if (unsupported != 0) {
|
||||
linux_msg(td, "statx unsupported flags 0x%x", unsupported);
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user