From owner-svn-src-all@FreeBSD.ORG Fri Dec 12 15:56:38 2008 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 791FB1065680; Fri, 12 Dec 2008 15:56:38 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6922F8FC1C; Fri, 12 Dec 2008 15:56:38 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mBCFucD9001838; Fri, 12 Dec 2008 15:56:38 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mBCFucKf001837; Fri, 12 Dec 2008 15:56:38 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <200812121556.mBCFucKf001837@svn.freebsd.org> From: Luigi Rizzo Date: Fri, 12 Dec 2008 15:56:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r185990 - head/sbin/newfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2008 15:56:38 -0000 Author: luigi Date: Fri Dec 12 15:56:38 2008 New Revision: 185990 URL: http://svn.freebsd.org/changeset/base/185990 Log: Move the check for the ending char in the partition name where it was before -- the check is only made when getdisklabel() returns valid info. On passing, use MAXPARTITIONS to identify the max partition number, instead of the hardwired 'h' MFC after: 4 weeks Modified: head/sbin/newfs/newfs.c Modified: head/sbin/newfs/newfs.c ============================================================================== --- head/sbin/newfs/newfs.c Fri Dec 12 14:57:25 2008 (r185989) +++ head/sbin/newfs/newfs.c Fri Dec 12 15:56:38 2008 (r185990) @@ -354,11 +354,6 @@ main(int argc, char *argv[]) mediasize = st.st_size; /* set fssize from the partition */ } else { - part_name = special[strlen(special) - 1]; - if ((part_name < 'a' || part_name > 'h') && !isdigit(part_name)) - errx(1, "%s: can't figure out file system partition", - special); - if (sectorsize == 0) if (ioctl(disk.d_fd, DIOCGSECTORSIZE, §orsize) == -1) sectorsize = 0; /* back out on error for safety */ @@ -368,6 +363,12 @@ main(int argc, char *argv[]) pp = NULL; lp = getdisklabel(special); if (lp != NULL) { + if (!is_file) /* already set for files */ + part_name = special[strlen(special) - 1]; + if ((part_name < 'a' || part_name - 'a' >= MAXPARTITIONS) && + !isdigit(part_name)) + errx(1, "%s: can't figure out file system partition", + special); cp = &part_name; if (isdigit(*cp)) pp = &lp->d_partitions[RAW_PART];