On Thursday, 3 August 2017 19:13:48 CEST Richard W.M. Jones wrote:
+ fprintf (stderr, "mode = %o\n", statbuf.st_mode);
+ if (S_ISBLK (statbuf.st_mode))
+ /* continue */;
+ else if (S_ISDIR (statbuf.st_mode)) {
+ fprintf (stderr, "S_ISDIR\n");
The two unconditional fprintf() look like debugging leftovers.
+ fd = open (device, O_RDONLY|O_CLOEXEC);
+ if (fd == -1) {
+ if (verbose)
+ fprintf (stderr, "%s: open: %s: %m\n", "is_device_parameter",
device);
+ return 0;
+ }
+ if (ioctl (fd, BLKGETSIZE64, &n) == -1) {
+ if (verbose)
+ fprintf (stderr, "%s: ioctl BLKGETSIZE64: %s: %m\n",
+ "is_device_parameter", device);
+ close (fd);
+ return 0;
+ }
+ close (fd);
Maybe 'fd' can be:
CLEANUP_CLOSE int fd = -1;
so there is no need to manually close() it on every return path.
--
Pino Toscano