From owner-p4-projects Mon Apr 22 11:52:35 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E3D9237B416; Mon, 22 Apr 2002 11:51:43 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 533C737B421 for ; Mon, 22 Apr 2002 11:51:41 -0700 (PDT) Received: (from perforce@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g3MIaRK11376 for perforce@freebsd.org; Mon, 22 Apr 2002 11:36:27 -0700 (PDT) (envelope-from green@freebsd.org) Date: Mon, 22 Apr 2002 11:36:27 -0700 (PDT) Message-Id: <200204221836.g3MIaRK11376@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: perforce set sender to green@freebsd.org using -f From: Brian Feldman Subject: PERFORCE change 10146 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://people.freebsd.org/~peter/p4db/chv.cgi?CH=10146 Change 10146 by green@green_laptop_2 on 2002/04/22 11:35:57 Back out badness. Affected files ... ... //depot/projects/trustedbsd/mac/usr.sbin/extattrctl/extattrctl.c#11 edit Differences ... ==== //depot/projects/trustedbsd/mac/usr.sbin/extattrctl/extattrctl.c#11 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 1999-2002 Robert N. M. Watson + * Copyright (c) 1999-2001 Robert N. M. Watson * All rights reserved. * * This software was developed by Robert Watson for the TrustedBSD Project. @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/usr.sbin/extattrctl/extattrctl.c,v 1.19 2002/04/19 01:42:55 rwatson Exp $ + * $FreeBSD: src/usr.sbin/extattrctl/extattrctl.c,v 1.17 2001/12/31 18:21:24 rwatson Exp $ */ /* * Developed by the TrustedBSD Project. @@ -84,26 +84,26 @@ return (buf.f_files); } -static const char zero_buf[8192]; - int initattr(int argc, char *argv[]) { struct ufs_extattr_fileheader uef; char *fs_path = NULL; - int ch, chunksize, i, error, flags; - ssize_t wlen; - size_t easize; + char *zero_buf = NULL; + long loop, num_inodes; + int ch, i, error, chunksize, overwrite = 0, flags; - flags = O_CREAT | O_WRONLY | O_TRUNC | O_EXCL; optind = 0; while ((ch = getopt(argc, argv, "fp:r:w:")) != -1) switch (ch) { case 'f': - flags &= ~O_EXCL; + overwrite = 1; break; case 'p': - fs_path = optarg; + if ((fs_path = strdup(optarg)) == NULL) { + perror("strdup"); + return(-1); + } break; case '?': default: @@ -116,6 +116,11 @@ if (argc != 2) usage(); + if (overwrite) + flags = O_CREAT | O_WRONLY; + else + flags = O_CREAT | O_EXCL | O_WRONLY; + error = 0; if ((i = open(argv[1], flags, 0600)) != -1) { FILE *fp; @@ -161,26 +166,6 @@ perror(argv[1]); return (-1); } - uef.uef_magic = UFS_EXTATTR_MAGIC; - uef.uef_version = UFS_EXTATTR_VERSION; - uef.uef_size = atoi(argv[0]); - if (write(i, &uef, sizeof(uef)) == -1) - error = -1; - else if (fs_path != NULL) { - easize = (sizeof uef + uef.uef_size) * - num_inodes_by_path(fs_path); - while (easize > 0) { - if (easize > sizeof zero_buf) - wlen = write(i, zero_buf, sizeof zero_buf); - else - wlen = write(i, zero_buf, easize); - if (wlen == -1) { - error = -1; - break; - } - easize -= wlen; - } - } if (error == -1) { perror(argv[1]); unlink(argv[1]); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message