Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Oct 1998 22:47:39 +0900 (JST)
From:      junichi@jp.FreeBSD.ORG
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   bin/8523: libdisk problem.
Message-ID:  <199810311347.WAA06615@atlantis.junichi.org>

next in thread | raw e-mail | index | archive | help

>Number:         8523
>Category:       bin
>Synopsis:       The Write_Disk() doesn't support any length of device name.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 31 21:50:00 PST 1998
>Last-Modified:
>Originator:     Junichi Satoh
>Organization:
>Release:        FreeBSD 3.0-CURRENT i386
>Environment:

FreeBSD-2.2.x, FreeBSD-3.0-current

>Description:

The Write_Disk() doesn't support any length of device names.
It supports only two characters, wd, da, etc...

>How-To-Repeat:

On /stand/sysinsatll, we can not create slices on 'wfd' devices.


>Fix:

Apply following patch to /usr/lib/libdisk/write_disk.c.
It's for -current.


*** write_disk.c.org	Tue Oct  6 20:57:08 1998
--- write_disk.c	Thu Oct 22 21:46:09 1998
***************
*** 64,73 ****
  	for(c2=c1->part;c2;c2=c2->next) {
  		if (c2->type == unused) continue;
  		if (!strcmp(c2->name,"X")) continue;
! 		j = c2->name[5] - 'a';
  		if (j < 0 || j >= MAXPARTITIONS || j == RAW_PART) {
  #ifdef DEBUG
! 			warn("Weird parititon letter %c",c2->name[5]);
  #endif
  			continue;
  		}
--- 64,73 ----
  	for(c2=c1->part;c2;c2=c2->next) {
  		if (c2->type == unused) continue;
  		if (!strcmp(c2->name,"X")) continue;
! 		j = c2->name[strlen(new->name) + 2] - 'a';
  		if (j < 0 || j >= MAXPARTITIONS || j == RAW_PART) {
  #ifdef DEBUG
! 			warn("Weird parititon letter %c",c2->name[strlen(new->name) + 2]);
  #endif
  			continue;
  		}
***************
*** 172,178 ****
  	for (c1=d1->chunks->part; c1 ; c1 = c1->next) {
  		if (c1->type == unused) continue;
  		if (!strcmp(c1->name,"X")) continue;
! 		j = c1->name[4] - '1';
  		if (j < 0 || j > 3)
  			continue;
  		s[j]++;
--- 172,178 ----
  	for (c1=d1->chunks->part; c1 ; c1 = c1->next) {
  		if (c1->type == unused) continue;
  		if (!strcmp(c1->name,"X")) continue;
! 		j = c1->name[strlen(d1->name) + 1] - '1';
  		if (j < 0 || j > 3)
  			continue;
  		s[j]++;
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810311347.WAA06615>