fdisk buglet

From: Sam <sah_at_softcardsystems.com>
Date: Fri, 15 Oct 2004 16:34:11 -0500 (EST)
fivethree% fdisk /dev/ad1
fdisk: cannot open disk /dev//dev/ad1: No such file or directory

One possible fix:

fivethree% diff -upr src/sbin/fdisk src2/sbin/fdisk
diff -upr src/sbin/fdisk/fdisk.c src2/sbin/fdisk/fdisk.c
--- src/sbin/fdisk/fdisk.c      Mon Jun 14 03:21:19 2004
+++ src2/sbin/fdisk/fdisk.c     Fri Oct 15 16:35:28 2004
_at__at_ -299,14 +299,16 _at__at_ main(int argc, char *argv[])
         if (argc == 0) {
                 disk = get_rootdisk();
         } else {
-               if (stat(argv[0], &sb) == 0) {
+               disk = argv[0];
+               if (stat(disk, &sb) == 0) {
                         /* OK, full pathname given */
-                       disk = argv[0];
                 } else if (errno == ENOENT) {
                         /* Try prepending "/dev" */
-                       asprintf(&disk, "%s%s", _PATH_DEV, argv[0]);
-                       if (disk == NULL)
-                               errx(1, "out of memory");
+                       if (strncmp(disk, _PATH_DEV, strlen(_PATH_DEV))) {
+                               asprintf(&disk, "%s%s", _PATH_DEV, argv[0]);
+                               if (disk == NULL)
+                                       errx(1, "out of memory");
+                       }
                 } else {
                         /* other stat error, let it fail below */
                         disk = argv[0];


Cheers,

Sam
Received on Fri Oct 15 2004 - 18:35:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:17 UTC