- if (v > 0xff)
- /* Bad input also triggers this */
- continue;
- return v;
- }
-}
-#endif /* FEATURE_FDISK_WRITABLE */
-
-static void fdisk_fatal(const char *why)
-{
- if (listing) {
- close_dev_fd();
- longjmp(listingbuf, 1);
- }
- bb_error_msg_and_die(why, disk_device);
-}
-
-static void
-seek_sector(sector_t secno)
-{
-#if ENABLE_FDISK_SUPPORT_LARGE_DISKS
- off64_t off = (off64_t)secno * sector_size;
- if (lseek64(dev_fd, off, SEEK_SET) == (off64_t) -1)
- fdisk_fatal(unable_to_seek);
-#else
- uint64_t off = (uint64_t)secno * sector_size;
- if (off > MAXINT(off_t)
- || lseek(dev_fd, (off_t)off, SEEK_SET) == (off_t) -1
- ) {
- fdisk_fatal(unable_to_seek);