diff options
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: |