From owner-svn-src-all@FreeBSD.ORG Wed Jun 30 18:34:46 2010 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 953F1106566B; Wed, 30 Jun 2010 18:34:46 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6B8038FC13; Wed, 30 Jun 2010 18:34:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o5UIYks3026914; Wed, 30 Jun 2010 18:34:46 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o5UIYk2l026903; Wed, 30 Jun 2010 18:34:46 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <201006301834.o5UIYk2l026903@svn.freebsd.org> From: Jaakko Heinonen Date: Wed, 30 Jun 2010 18:34:46 +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: r209614 - head/sbin/bsdlabel 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: Wed, 30 Jun 2010 18:34:46 -0000 Author: jh Date: Wed Jun 30 18:34:45 2010 New Revision: 209614 URL: http://svn.freebsd.org/changeset/base/209614 Log: - Don't assign the return value from read(2) to a variable of type int. - Use errx(3) instead of err(3) to print the error message on short reads in readlabel(). errno won't be set on short reads which can easily occur here due to the fixed size read request. PR: 144307 Reviewed by: bde Modified: head/sbin/bsdlabel/bsdlabel.c Modified: head/sbin/bsdlabel/bsdlabel.c ============================================================================== --- head/sbin/bsdlabel/bsdlabel.c Wed Jun 30 18:03:42 2010 (r209613) +++ head/sbin/bsdlabel/bsdlabel.c Wed Jun 30 18:34:45 2010 (r209614) @@ -347,7 +347,7 @@ makelabel(const char *type, struct diskl static void readboot(void) { - int fd, i; + int fd; struct stat st; uint64_t *p; @@ -358,8 +358,7 @@ readboot(void) err(1, "cannot open %s", xxboot); fstat(fd, &st); if (alphacksum && st.st_size <= BBSIZE - 512) { - i = read(fd, bootarea + 512, st.st_size); - if (i != st.st_size) + if (read(fd, bootarea + 512, st.st_size) != st.st_size) err(1, "read error %s", xxboot); /* @@ -372,8 +371,7 @@ readboot(void) p[62] = 0; return; } else if ((!alphacksum) && st.st_size <= BBSIZE) { - i = read(fd, bootarea, st.st_size); - if (i != st.st_size) + if (read(fd, bootarea, st.st_size) != st.st_size) err(1, "read error %s", xxboot); return; } @@ -479,6 +477,7 @@ get_file_parms(int f) static int readlabel(int flag) { + ssize_t nbytes; uint32_t lba; int f, i; int error; @@ -498,8 +497,11 @@ readlabel(int flag) errx(1, "disks with more than 2^32-1 sectors are not supported"); (void)lseek(f, (off_t)0, SEEK_SET); - if (read(f, bootarea, BBSIZE) != BBSIZE) + nbytes = read(f, bootarea, BBSIZE); + if (nbytes == -1) err(4, "%s read", specname); + if (nbytes != BBSIZE) + errx(4, "couldn't read %d bytes from %s", BBSIZE, specname); close (f); error = bsd_disklabel_le_dec( bootarea + (labeloffset + labelsoffset * secsize),