@@ -33,7 +33,8 @@ int fcntl(int fd, int cmd, void *arg) {
33
33
#error "fcntl and fcntl64 syscalls not available."
34
34
#endif
35
35
36
- switch (cmd) {
36
+ int new_cmd = cmd;
37
+ switch (new_cmd) {
37
38
case F_OFD_SETLKW: {
38
39
struct flock *flk = reinterpret_cast <struct flock *>(arg);
39
40
// convert the struct to a flock64
@@ -44,7 +45,8 @@ int fcntl(int fd, int cmd, void *arg) {
44
45
flk64.l_len = flk->l_len ;
45
46
flk64.l_pid = flk->l_pid ;
46
47
// create a syscall
47
- return LIBC_NAMESPACE::syscall_impl<int >(FCNTL_SYSCALL_ID, fd, cmd, &flk64);
48
+ return LIBC_NAMESPACE::syscall_impl<int >(FCNTL_SYSCALL_ID, fd, new_cmd,
49
+ &flk64);
48
50
}
49
51
case F_OFD_GETLK:
50
52
case F_OFD_SETLK: {
@@ -57,8 +59,8 @@ int fcntl(int fd, int cmd, void *arg) {
57
59
flk64.l_len = flk->l_len ;
58
60
flk64.l_pid = flk->l_pid ;
59
61
// create a syscall
60
- int retVal =
61
- LIBC_NAMESPACE::syscall_impl< int >(FCNTL_SYSCALL_ID, fd, cmd , &flk64);
62
+ int retVal = LIBC_NAMESPACE::syscall_impl< int >(FCNTL_SYSCALL_ID, fd,
63
+ new_cmd , &flk64);
62
64
// On failure, return
63
65
if (retVal == -1 )
64
66
return -1 ;
@@ -89,22 +91,22 @@ int fcntl(int fd, int cmd, void *arg) {
89
91
#ifdef SYS_fcntl64
90
92
case F_GETLK: {
91
93
if constexpr (FCNTL_SYSCALL_ID == SYS_fcntl64)
92
- return fcntl (fd, F_GETLK64, arg) ;
94
+ new_cmd = F_GETLK64;
93
95
break ;
94
96
}
95
97
case F_SETLK: {
96
98
if constexpr (FCNTL_SYSCALL_ID == SYS_fcntl64)
97
- return fcntl (fd, F_SETLK64, arg) ;
99
+ new_cmd = F_SETLK64;
98
100
break ;
99
101
}
100
102
case F_SETLKW: {
101
103
if constexpr (FCNTL_SYSCALL_ID == SYS_fcntl64)
102
- return fcntl (fd, F_SETLKW64, arg) ;
104
+ new_cmd = F_SETLKW64;
103
105
break ;
104
106
}
105
107
#endif
106
108
}
107
- int retVal = LIBC_NAMESPACE::syscall_impl<int >(FCNTL_SYSCALL_ID, fd, cmd ,
109
+ int retVal = LIBC_NAMESPACE::syscall_impl<int >(FCNTL_SYSCALL_ID, fd, new_cmd ,
108
110
reinterpret_cast <void *>(arg));
109
111
if (retVal >= 0 ) {
110
112
return retVal;
0 commit comments