diff options
author | Jiffin Tony Thottan <jthottan@redhat.com> | 2016-11-17 18:22:39 +0530 |
---|---|---|
committer | Kaleb KEITHLEY <kkeithle@redhat.com> | 2016-12-14 05:01:07 -0800 |
commit | e81fd0b85c8dd3f521e54e32b7da2f99a513f2f2 (patch) | |
tree | 4b5a7e9f7d528dcb156f4628b5bba0fa88b6ef59 /tests/bugs/access-control/bug-1387241.c | |
parent | ff2a58d784bc20ccafab8183d82787ceb8ac471b (diff) |
access_control : address O_TRUNC and O_APPEND flag properly in posix_acl_open
In posix_acl_open, in switch value passed is (flag & O_ACCMODE). The value for
O_ACCMODE is 0003, so the result will always be less than or equal to 3.
But value for O_TRUNC is 01000 and O_APPEND is 02000, so it is not right to
check it in switch case
Change-Id: Ia17db80a6a5f681c35e08e062d384f33ef7e0354
BUG: 1387241
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
Reviewed-on: http://review.gluster.org/15688
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Diffstat (limited to 'tests/bugs/access-control/bug-1387241.c')
-rw-r--r-- | tests/bugs/access-control/bug-1387241.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/bugs/access-control/bug-1387241.c b/tests/bugs/access-control/bug-1387241.c new file mode 100644 index 00000000000..04e0d6ea11f --- /dev/null +++ b/tests/bugs/access-control/bug-1387241.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> + +int main(int argc, char *argv[]) +{ + int ret = EXIT_FAILURE; + int fd = open(argv[1], O_RDONLY|O_TRUNC); + + if (fd) { + ret = EXIT_SUCCESS; + close(fd); + } + + return ret; +} |