fdisk buglet
Sam
sah at softcardsystems.com
Fri Oct 15 13:35:58 PDT 2004
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
@@ -299,14 +299,16 @@ 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
More information about the freebsd-current
mailing list