diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2007-02-07 01:48:00 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2007-02-17 21:30:15 -0500 |
commit | db3495099d3d52854b13874905af6e40a91f4721 (patch) | |
tree | 5a832081d70dd9dabda3498baf40b7d6ced47f24 /fs/pipe.c | |
parent | 6a01b07fae482f9b34491b317056c89d3b96ca2e (diff) |
[PATCH] AUDIT_FD_PAIR
Provide an audit record of the descriptor pair returned by pipe() and
socketpair(). Rewritten from the original posted to linux-audit by
John D. Ramsdell <ramsdell@mitre.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/pipe.c')
-rw-r--r-- | fs/pipe.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/uio.h> | 16 | #include <linux/uio.h> |
17 | #include <linux/highmem.h> | 17 | #include <linux/highmem.h> |
18 | #include <linux/pagemap.h> | 18 | #include <linux/pagemap.h> |
19 | #include <linux/audit.h> | ||
19 | 20 | ||
20 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
21 | #include <asm/ioctls.h> | 22 | #include <asm/ioctls.h> |
@@ -985,6 +986,10 @@ int do_pipe(int *fd) | |||
985 | goto err_fdr; | 986 | goto err_fdr; |
986 | fdw = error; | 987 | fdw = error; |
987 | 988 | ||
989 | error = audit_fd_pair(fdr, fdw); | ||
990 | if (error < 0) | ||
991 | goto err_fdw; | ||
992 | |||
988 | fd_install(fdr, fr); | 993 | fd_install(fdr, fr); |
989 | fd_install(fdw, fw); | 994 | fd_install(fdw, fw); |
990 | fd[0] = fdr; | 995 | fd[0] = fdr; |
@@ -992,6 +997,8 @@ int do_pipe(int *fd) | |||
992 | 997 | ||
993 | return 0; | 998 | return 0; |
994 | 999 | ||
1000 | err_fdw: | ||
1001 | put_unused_fd(fdw); | ||
995 | err_fdr: | 1002 | err_fdr: |
996 | put_unused_fd(fdr); | 1003 | put_unused_fd(fdr); |
997 | err_read_pipe: | 1004 | err_read_pipe: |