On Fri, Oct 15, 2004 at 04:34:11PM -0500, Sam wrote: > 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]; > Simpler: %%% Index: fdisk.c =================================================================== RCS file: /home/ncvs/src/sbin/fdisk/fdisk.c,v retrieving revision 1.74 diff -u -r1.74 fdisk.c --- fdisk.c 14 Jun 2004 07:21:19 -0000 1.74 +++ fdisk.c 16 Oct 2004 06:43:16 -0000 _at__at_ -302,7 +302,7 _at__at_ if (stat(argv[0], &sb) == 0) { /* OK, full pathname given */ disk = argv[0]; - } else if (errno == ENOENT) { + } else if (errno == ENOENT && argv[0][0] != '/') { /* Try prepending "/dev" */ asprintf(&disk, "%s%s", _PATH_DEV, argv[0]); if (disk == NULL) %%% Cheers, -- Ruslan Ermilov ru_at_FreeBSD.org FreeBSD committer
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:17 UTC