From f5320b483c0a25be1481df221665f4d18add4a1a Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sat, 31 Oct 2015 18:34:36 +0000 Subject: fdformat: fix block device open race This fix makes fdformat also to detect if block device is busy, and warn if the device is misaligned. Signed-off-by: Sami Kerola --- disk-utils/fdformat.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'disk-utils/fdformat.c') diff --git a/disk-utils/fdformat.c b/disk-utils/fdformat.c index e7d43da8f..66e1bb90d 100644 --- a/disk-utils/fdformat.c +++ b/disk-utils/fdformat.c @@ -12,6 +12,7 @@ #include #include "c.h" +#include "blkdev.h" #include "strutils.h" #include "closestream.h" #include "nls.h" @@ -221,10 +222,7 @@ int main(int argc, char **argv) if (!S_ISBLK(st.st_mode)) /* do not test major - perhaps this was an USB floppy */ errx(EXIT_FAILURE, _("%s: not a block device"), argv[0]); - if (access(argv[0], W_OK) < 0) - err(EXIT_FAILURE, _("cannot access file %s"), argv[0]); - - ctrl = open(argv[0], O_RDWR); + ctrl = open_blkdev_or_file(&st, argv[0], O_RDWR); if (ctrl < 0) err(EXIT_FAILURE, _("cannot open %s"), argv[0]); if (ioctl(ctrl, FDGETPRM, (long) ¶m) < 0) -- cgit v1.2.3-55-g7522