Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
d4e82042
Commit
d4e82042
authored
Jan 14, 2009
by
Heiko Carstens
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[CVE-2009-0029] System call wrappers part 32
Signed-off-by:
Heiko Carstens
<
heiko.carstens@de.ibm.com
>
parent
836f92ad
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
24 additions
and
17 deletions
+24
-17
fs/eventfd.c
fs/eventfd.c
+2
-3
fs/pipe.c
fs/pipe.c
+1
-1
fs/readdir.c
fs/readdir.c
+2
-1
fs/select.c
fs/select.c
+6
-5
fs/timerfd.c
fs/timerfd.c
+1
-1
include/linux/syscalls.h
include/linux/syscalls.h
+7
-0
kernel/signal.c
kernel/signal.c
+5
-6
No files found.
fs/eventfd.c
View file @
d4e82042
...
@@ -198,7 +198,7 @@ struct file *eventfd_fget(int fd)
...
@@ -198,7 +198,7 @@ struct file *eventfd_fget(int fd)
return
file
;
return
file
;
}
}
asmlinkage
long
sys_eventfd2
(
unsigned
int
count
,
int
flags
)
SYSCALL_DEFINE2
(
eventfd2
,
unsigned
int
,
count
,
int
,
flags
)
{
{
int
fd
;
int
fd
;
struct
eventfd_ctx
*
ctx
;
struct
eventfd_ctx
*
ctx
;
...
@@ -228,8 +228,7 @@ asmlinkage long sys_eventfd2(unsigned int count, int flags)
...
@@ -228,8 +228,7 @@ asmlinkage long sys_eventfd2(unsigned int count, int flags)
return
fd
;
return
fd
;
}
}
asmlinkage
long
sys_eventfd
(
unsigned
int
count
)
SYSCALL_DEFINE1
(
eventfd
,
unsigned
int
,
count
)
{
{
return
sys_eventfd2
(
count
,
0
);
return
sys_eventfd2
(
count
,
0
);
}
}
fs/pipe.c
View file @
d4e82042
...
@@ -1043,7 +1043,7 @@ int do_pipe(int *fd)
...
@@ -1043,7 +1043,7 @@ int do_pipe(int *fd)
* sys_pipe() is the normal C calling standard for creating
* sys_pipe() is the normal C calling standard for creating
* a pipe. It's not the way Unix traditionally does this, though.
* a pipe. It's not the way Unix traditionally does this, though.
*/
*/
asmlinkage
long
sys_pipe2
(
int
__user
*
fildes
,
int
flags
)
SYSCALL_DEFINE2
(
pipe2
,
int
__user
*
,
fildes
,
int
,
flags
)
{
{
int
fd
[
2
];
int
fd
[
2
];
int
error
;
int
error
;
...
...
fs/readdir.c
View file @
d4e82042
...
@@ -102,7 +102,8 @@ static int fillonedir(void * __buf, const char * name, int namlen, loff_t offset
...
@@ -102,7 +102,8 @@ static int fillonedir(void * __buf, const char * name, int namlen, loff_t offset
return
-
EFAULT
;
return
-
EFAULT
;
}
}
asmlinkage
long
sys_old_readdir
(
unsigned
int
fd
,
struct
old_linux_dirent
__user
*
dirent
,
unsigned
int
count
)
SYSCALL_DEFINE3
(
old_readdir
,
unsigned
int
,
fd
,
struct
old_linux_dirent
__user
*
,
dirent
,
unsigned
int
,
count
)
{
{
int
error
;
int
error
;
struct
file
*
file
;
struct
file
*
file
;
...
...
fs/select.c
View file @
d4e82042
...
@@ -636,8 +636,9 @@ static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp,
...
@@ -636,8 +636,9 @@ static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp,
* which has a pointer to the sigset_t itself followed by a size_t containing
* which has a pointer to the sigset_t itself followed by a size_t containing
* the sigset size.
* the sigset size.
*/
*/
asmlinkage
long
sys_pselect6
(
int
n
,
fd_set
__user
*
inp
,
fd_set
__user
*
outp
,
SYSCALL_DEFINE6
(
pselect6
,
int
,
n
,
fd_set
__user
*
,
inp
,
fd_set
__user
*
,
outp
,
fd_set
__user
*
exp
,
struct
timespec
__user
*
tsp
,
void
__user
*
sig
)
fd_set
__user
*
,
exp
,
struct
timespec
__user
*
,
tsp
,
void
__user
*
,
sig
)
{
{
size_t
sigsetsize
=
0
;
size_t
sigsetsize
=
0
;
sigset_t
__user
*
up
=
NULL
;
sigset_t
__user
*
up
=
NULL
;
...
@@ -889,9 +890,9 @@ SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds,
...
@@ -889,9 +890,9 @@ SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds,
}
}
#ifdef HAVE_SET_RESTORE_SIGMASK
#ifdef HAVE_SET_RESTORE_SIGMASK
asmlinkage
long
sys_ppoll
(
struct
pollfd
__user
*
ufds
,
unsigned
int
nfds
,
SYSCALL_DEFINE5
(
ppoll
,
struct
pollfd
__user
*
,
ufds
,
unsigned
int
,
nfds
,
struct
timespec
__user
*
tsp
,
const
sigset_t
__user
*
sigmask
,
struct
timespec
__user
*
,
tsp
,
const
sigset_t
__user
*
,
sigmask
,
size_t
sigsetsize
)
size_t
,
sigsetsize
)
{
{
sigset_t
ksigmask
,
sigsaved
;
sigset_t
ksigmask
,
sigsaved
;
struct
timespec
ts
,
end_time
,
*
to
=
NULL
;
struct
timespec
ts
,
end_time
,
*
to
=
NULL
;
...
...
fs/timerfd.c
View file @
d4e82042
...
@@ -265,7 +265,7 @@ SYSCALL_DEFINE4(timerfd_settime, int, ufd, int, flags,
...
@@ -265,7 +265,7 @@ SYSCALL_DEFINE4(timerfd_settime, int, ufd, int, flags,
return
0
;
return
0
;
}
}
asmlinkage
long
sys_timerfd_gettime
(
int
ufd
,
struct
itimerspec
__user
*
otmr
)
SYSCALL_DEFINE2
(
timerfd_gettime
,
int
,
ufd
,
struct
itimerspec
__user
*
,
otmr
)
{
{
struct
file
*
file
;
struct
file
*
file
;
struct
timerfd_ctx
*
ctx
;
struct
timerfd_ctx
*
ctx
;
...
...
include/linux/syscalls.h
View file @
d4e82042
...
@@ -678,6 +678,13 @@ asmlinkage long sys_eventfd(unsigned int count);
...
@@ -678,6 +678,13 @@ asmlinkage long sys_eventfd(unsigned int count);
asmlinkage
long
sys_eventfd2
(
unsigned
int
count
,
int
flags
);
asmlinkage
long
sys_eventfd2
(
unsigned
int
count
,
int
flags
);
asmlinkage
long
sys_fallocate
(
int
fd
,
int
mode
,
loff_t
offset
,
loff_t
len
);
asmlinkage
long
sys_fallocate
(
int
fd
,
int
mode
,
loff_t
offset
,
loff_t
len
);
asmlinkage
long
sys_old_readdir
(
unsigned
int
,
struct
old_linux_dirent
__user
*
,
unsigned
int
);
asmlinkage
long
sys_old_readdir
(
unsigned
int
,
struct
old_linux_dirent
__user
*
,
unsigned
int
);
asmlinkage
long
sys_pselect6
(
int
,
fd_set
__user
*
,
fd_set
__user
*
,
fd_set
__user
*
,
struct
timespec
__user
*
,
void
__user
*
);
asmlinkage
long
sys_ppoll
(
struct
pollfd
__user
*
,
unsigned
int
,
struct
timespec
__user
*
,
const
sigset_t
__user
*
,
size_t
);
asmlinkage
long
sys_pipe2
(
int
__user
*
,
int
);
int
kernel_execve
(
const
char
*
filename
,
char
*
const
argv
[],
char
*
const
envp
[]);
int
kernel_execve
(
const
char
*
filename
,
char
*
const
argv
[],
char
*
const
envp
[]);
...
...
kernel/signal.c
View file @
d4e82042
...
@@ -2491,11 +2491,10 @@ SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, set,
...
@@ -2491,11 +2491,10 @@ SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, set,
#endif
/* __ARCH_WANT_SYS_SIGPROCMASK */
#endif
/* __ARCH_WANT_SYS_SIGPROCMASK */
#ifdef __ARCH_WANT_SYS_RT_SIGACTION
#ifdef __ARCH_WANT_SYS_RT_SIGACTION
asmlinkage
long
SYSCALL_DEFINE4
(
rt_sigaction
,
int
,
sig
,
sys_rt_sigaction
(
int
sig
,
const
struct
sigaction
__user
*
,
act
,
const
struct
sigaction
__user
*
act
,
struct
sigaction
__user
*
,
oact
,
struct
sigaction
__user
*
oact
,
size_t
,
sigsetsize
)
size_t
sigsetsize
)
{
{
struct
k_sigaction
new_sa
,
old_sa
;
struct
k_sigaction
new_sa
,
old_sa
;
int
ret
=
-
EINVAL
;
int
ret
=
-
EINVAL
;
...
@@ -2578,7 +2577,7 @@ SYSCALL_DEFINE0(pause)
...
@@ -2578,7 +2577,7 @@ SYSCALL_DEFINE0(pause)
#endif
#endif
#ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND
#ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND
asmlinkage
long
sys_rt_sigsuspend
(
sigset_t
__user
*
unewset
,
size_t
sigsetsize
)
SYSCALL_DEFINE2
(
rt_sigsuspend
,
sigset_t
__user
*
,
unewset
,
size_t
,
sigsetsize
)
{
{
sigset_t
newset
;
sigset_t
newset
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment