From owner-svn-src-projects@FreeBSD.ORG Sun Dec 27 06:26:04 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1EA8106568D; Sun, 27 Dec 2009 06:26:04 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B0EE98FC1E; Sun, 27 Dec 2009 06:26:04 +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 nBR6Q4jb045545; Sun, 27 Dec 2009 06:26:04 GMT (envelope-from mckusick@svn.freebsd.org) Received: (from mckusick@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBR6Q4Fn045543; Sun, 27 Dec 2009 06:26:04 GMT (envelope-from mckusick@svn.freebsd.org) Message-Id: <200912270626.nBR6Q4Fn045543@svn.freebsd.org> From: Kirk McKusick Date: Sun, 27 Dec 2009 06:26:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201037 - projects/quota64/lib/libutil X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2009 06:26:04 -0000 Author: mckusick Date: Sun Dec 27 06:26:04 2009 New Revision: 201037 URL: http://svn.freebsd.org/changeset/base/201037 Log: Minor bugs turned up during conversion of quotacheck. Modified: projects/quota64/lib/libutil/quotafile.c Modified: projects/quota64/lib/libutil/quotafile.c ============================================================================== --- projects/quota64/lib/libutil/quotafile.c Sun Dec 27 06:25:03 2009 (r201036) +++ projects/quota64/lib/libutil/quotafile.c Sun Dec 27 06:26:04 2009 (r201037) @@ -118,6 +118,8 @@ quota_open(struct fstab *fs, int quotaty struct stat st; int qcmd, serrno; + if (strcmp(fs->fs_vfstype, "ufs")) + return (NULL); if ((qf = calloc(1, sizeof(*qf))) == NULL) return (NULL); qf->fd = -1; @@ -176,8 +178,11 @@ quota_open(struct fstab *fs, int quotaty dqh.dqh_version = htobe32(Q_DQHDR64_VERSION); dqh.dqh_hdrlen = htobe32(sizeof(struct dqhdr64)); dqh.dqh_reclen = htobe32(sizeof(struct dqblk64)); - if (write(qf->fd, &dqh, sizeof(dqh)) != sizeof(dqh)) + if (write(qf->fd, &dqh, sizeof(dqh)) != sizeof(dqh)) { + /* it was one we created ourselves */ + unlink(qf->qfname); goto error; + } grp = getgrnam(QUOTAGROUP); fchown(qf->fd, 0, grp ? grp->gr_gid : 0); fchmod(qf->fd, 0640); @@ -185,12 +190,8 @@ quota_open(struct fstab *fs, int quotaty error: serrno = errno; /* did we have an open file? */ - if (qf->fd != -1) { - /* was it one we created ourselves? */ - if ((openflags & O_CREAT) == O_CREAT) - unlink(qf->qfname); + if (qf->fd != -1) close(qf->fd); - } free(qf); errno = serrno; return (NULL);