From ade06f83f18b0801935de8925bb5117557627f4c Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Mon, 3 Mar 2014 12:29:32 +1100 Subject: [PATCH] xfs_io: test for invalid -Tr flag combination before open Coverity spotted this. It complained that we didn't close the fd before returning in the error case of incompatible options, but in reality, we wouldn't have gotten that far because open(O_RDONLY|O_TMPFILE) would be rejected with EINVAL. So the error handling test would never actually be true. Fix this by moving the error checking prior to the open so the user gets a more useful error message than "Invalid Argument." Signed-off-by: Eric Sandeen Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner --- io/open.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/io/open.c b/io/open.c index 6bb0d466c..c106fa7d4 100644 --- a/io/open.c +++ b/io/open.c @@ -342,6 +342,11 @@ open_f( if (optind != argc - 1) return command_usage(&open_cmd); + if ((flags & (IO_READONLY|IO_TMPFILE)) == (IO_READONLY|IO_TMPFILE)) { + fprintf(stderr, _("-T and -r options are incompatible\n")); + return -1; + } + fd = openfile(argv[optind], &geometry, flags, mode); if (fd < 0) return 0; @@ -349,11 +354,6 @@ open_f( if (!platform_test_xfs_fd(fd)) flags |= IO_FOREIGN; - if ((flags & (IO_READONLY|IO_TMPFILE)) == (IO_READONLY|IO_TMPFILE)) { - fprintf(stderr, _("-T and -r options are incompatible\n")); - return -1; - } - addfile(argv[optind], fd, &geometry, flags); return 0; } -- 2.47.2