diff options
Diffstat (limited to 'misc-utils')
-rw-r--r-- | misc-utils/ftl_check.c | 14 | ||||
-rw-r--r-- | misc-utils/ftl_format.c | 14 |
2 files changed, 16 insertions, 12 deletions
diff --git a/misc-utils/ftl_check.c b/misc-utils/ftl_check.c index 5a04155..5b2dae5 100644 --- a/misc-utils/ftl_check.c +++ b/misc-utils/ftl_check.c @@ -206,18 +206,20 @@ int main(int argc, char *argv[]) exit(errflg > 0 ? 0 : EXIT_FAILURE); } - if (stat(argv[optind], &buf) != 0) { + fd = open(argv[optind], O_RDONLY); + if (fd == -1) { + perror("open failed"); + exit(EXIT_FAILURE); + } + if (fstat(fd, &buf) != 0) { perror("status check failed"); + close(fd); exit(EXIT_FAILURE); } if (!(buf.st_mode & S_IFCHR)) { fprintf(stderr, "%s is not a character special device\n", argv[optind]); - exit(EXIT_FAILURE); - } - fd = open(argv[optind], O_RDONLY); - if (fd == -1) { - perror("open failed"); + close(fd); exit(EXIT_FAILURE); } diff --git a/misc-utils/ftl_format.c b/misc-utils/ftl_format.c index bf3c8f2..34d436c 100644 --- a/misc-utils/ftl_format.c +++ b/misc-utils/ftl_format.c @@ -312,18 +312,20 @@ int main(int argc, char *argv[]) exit(errflg > 0 ? EXIT_SUCCESS : EXIT_FAILURE); } - if (stat(argv[optind], &buf) != 0) { + fd = open(argv[optind], O_RDWR); + if (fd == -1) { + perror("open failed"); + exit(EXIT_FAILURE); + } + if (fstat(fd, &buf) != 0) { perror("status check failed"); + close(fd); exit(EXIT_FAILURE); } if (!(buf.st_mode & S_IFCHR)) { fprintf(stderr, "%s is not a character special device\n", argv[optind]); - exit(EXIT_FAILURE); - } - fd = open(argv[optind], O_RDWR); - if (fd == -1) { - perror("open failed"); + close(fd); exit(EXIT_FAILURE); } |