From owner-svn-src-head@FreeBSD.ORG Tue Dec 29 05:47:47 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B0CFB106566C; Tue, 29 Dec 2009 05:47:47 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9C7A28FC13; Tue, 29 Dec 2009 05:47:47 +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 nBT5ll5G012490; Tue, 29 Dec 2009 05:47:47 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBT5llcM012489; Tue, 29 Dec 2009 05:47:47 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200912290547.nBT5llcM012489@svn.freebsd.org> From: Tim Kientzle Date: Tue, 29 Dec 2009 05:47:47 +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: r201162 - head/lib/libarchive X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2009 05:47:47 -0000 Author: kientzle Date: Tue Dec 29 05:47:46 2009 New Revision: 201162 URL: http://svn.freebsd.org/changeset/base/201162 Log: Style and portability fixes for pax writer. Mostly very routine, except for: * Use ino64 where appropriate * Don't pass atime or nsec to ustar formatter Modified: head/lib/libarchive/archive_write_set_format_pax.c Modified: head/lib/libarchive/archive_write_set_format_pax.c ============================================================================== --- head/lib/libarchive/archive_write_set_format_pax.c Tue Dec 29 05:44:39 2009 (r201161) +++ head/lib/libarchive/archive_write_set_format_pax.c Tue Dec 29 05:47:46 2009 (r201162) @@ -307,7 +307,7 @@ add_pax_attr(struct archive_string *as, * PAX attributes have the following layout: * <=> */ - len = 1 + strlen(key) + 1 + strlen(value) + 1; + len = 1 + (int)strlen(key) + 1 + (int)strlen(value) + 1; /* * The field includes the length of the field, so @@ -362,7 +362,7 @@ archive_write_pax_header_xattrs(struct p url_encoded_name = url_encode(name); if (url_encoded_name != NULL) { /* Convert narrow-character to wide-character. */ - int wcs_length = strlen(url_encoded_name); + size_t wcs_length = strlen(url_encoded_name); wcs_name = (wchar_t *)malloc((wcs_length + 1) * sizeof(wchar_t)); if (wcs_name == NULL) __archive_errx(1, "No memory for xattr conversion"); @@ -479,7 +479,7 @@ archive_write_pax_header(struct archive_ path = archive_entry_pathname(entry_main); path_w = archive_entry_pathname_w(entry_main); if (path != NULL && path_w == NULL) { - archive_set_error(&a->archive, EILSEQ, + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Can't translate pathname '%s' to UTF-8", path); ret = ARCHIVE_WARN; hdrcharset = "BINARY"; @@ -487,7 +487,7 @@ archive_write_pax_header(struct archive_ uname = archive_entry_uname(entry_main); uname_w = archive_entry_uname_w(entry_main); if (uname != NULL && uname_w == NULL) { - archive_set_error(&a->archive, EILSEQ, + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Can't translate uname '%s' to UTF-8", uname); ret = ARCHIVE_WARN; hdrcharset = "BINARY"; @@ -495,7 +495,7 @@ archive_write_pax_header(struct archive_ gname = archive_entry_gname(entry_main); gname_w = archive_entry_gname_w(entry_main); if (gname != NULL && gname_w == NULL) { - archive_set_error(&a->archive, EILSEQ, + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Can't translate gname '%s' to UTF-8", gname); ret = ARCHIVE_WARN; hdrcharset = "BINARY"; @@ -509,7 +509,7 @@ archive_write_pax_header(struct archive_ linkpath_w = archive_entry_symlink_w(entry_main); } if (linkpath != NULL && linkpath_w == NULL) { - archive_set_error(&a->archive, EILSEQ, + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, "Can't translate linkpath '%s' to UTF-8", linkpath); ret = ARCHIVE_WARN; hdrcharset = "BINARY"; @@ -625,7 +625,7 @@ archive_write_pax_header(struct archive_ } /* If numeric GID is too large, add 'gid' to pax extended attrs. */ - if (archive_entry_gid(entry_main) >= (1 << 18)) { + if ((unsigned int)archive_entry_gid(entry_main) >= (1 << 18)) { add_pax_attr_int(&(pax->pax_header), "gid", archive_entry_gid(entry_main)); need_extension = 1; @@ -650,7 +650,7 @@ archive_write_pax_header(struct archive_ } /* If numeric UID is too large, add 'uid' to pax extended attrs. */ - if (archive_entry_uid(entry_main) >= (1 << 18)) { + if ((unsigned int)archive_entry_uid(entry_main) >= (1 << 18)) { add_pax_attr_int(&(pax->pax_header), "uid", archive_entry_uid(entry_main)); need_extension = 1; @@ -819,7 +819,7 @@ archive_write_pax_header(struct archive_ add_pax_attr_int(&(pax->pax_header), "SCHILY.dev", archive_entry_dev(entry_main)); add_pax_attr_int(&(pax->pax_header), "SCHILY.ino", - archive_entry_ino(entry_main)); + archive_entry_ino64(entry_main)); add_pax_attr_int(&(pax->pax_header), "SCHILY.nlink", archive_entry_nlink(entry_main)); @@ -887,7 +887,6 @@ archive_write_pax_header(struct archive_ uid_t uid; gid_t gid; mode_t mode; - long ns; pax_attr_entry = archive_entry_new(); p = archive_entry_pathname(entry_main); @@ -897,12 +896,12 @@ archive_write_pax_header(struct archive_ archive_strlen(&(pax->pax_header))); /* Copy uid/gid (but clip to ustar limits). */ uid = archive_entry_uid(entry_main); - if (uid >= 1 << 18) - uid = (1 << 18) - 1; + if ((unsigned int)uid >= 1 << 18) + uid = (uid_t)(1 << 18) - 1; archive_entry_set_uid(pax_attr_entry, uid); gid = archive_entry_gid(entry_main); - if (gid >= 1 << 18) - gid = (1 << 18) - 1; + if ((unsigned int)gid >= 1 << 18) + gid = (gid_t)(1 << 18) - 1; archive_entry_set_gid(pax_attr_entry, gid); /* Copy mode over (but not setuid/setgid bits) */ mode = archive_entry_mode(entry_main); @@ -925,17 +924,12 @@ archive_write_pax_header(struct archive_ /* Copy mtime, but clip to ustar limits. */ s = archive_entry_mtime(entry_main); - ns = archive_entry_mtime_nsec(entry_main); - if (s < 0) { s = 0; ns = 0; } - if (s > 0x7fffffff) { s = 0x7fffffff; ns = 0; } - archive_entry_set_mtime(pax_attr_entry, s, ns); - - /* Ditto for atime. */ - s = archive_entry_atime(entry_main); - ns = archive_entry_atime_nsec(entry_main); - if (s < 0) { s = 0; ns = 0; } - if (s > 0x7fffffff) { s = 0x7fffffff; ns = 0; } - archive_entry_set_atime(pax_attr_entry, s, ns); + if (s < 0) { s = 0; } + if (s >= 0x7fffffff) { s = 0x7fffffff; } + archive_entry_set_mtime(pax_attr_entry, s, 0); + + /* Standard ustar doesn't support atime. */ + archive_entry_set_atime(pax_attr_entry, 0, 0); /* Standard ustar doesn't support ctime. */ archive_entry_set_ctime(pax_attr_entry, 0, 0); @@ -949,7 +943,8 @@ archive_write_pax_header(struct archive_ if (r != 0) { const char *msg = "archive_write_pax_header: " "'x' header failed?! This can't happen.\n"; - write(2, msg, strlen(msg)); + size_t u = write(2, msg, strlen(msg)); + (void)u; /* UNUSED */ exit(1); } r = (a->compressor.write)(a, paxbuff, 512); @@ -1030,7 +1025,7 @@ build_ustar_entry_name(char *dest, const char *p; int need_slash = 0; /* Was there a trailing slash? */ size_t suffix_length = 99; - int insert_length; + size_t insert_length; /* Length of additional dir element to be added. */ if (insert == NULL) @@ -1124,7 +1119,7 @@ build_ustar_entry_name(char *dest, const p += filename_end - filename; if (need_slash) *p++ = '/'; - *p++ = '\0'; + *p = '\0'; return (dest); } @@ -1215,13 +1210,11 @@ build_pax_attribute_name(char *dest, con static int archive_write_pax_finish(struct archive_write *a) { - struct pax *pax; int r; if (a->compressor.write == NULL) return (ARCHIVE_OK); - pax = (struct pax *)a->format_data; r = write_nulls(a, 512 * 2); return (r); } @@ -1256,7 +1249,8 @@ archive_write_pax_finish_entry(struct ar static int write_nulls(struct archive_write *a, size_t padding) { - int ret, to_write; + int ret; + size_t to_write; while (padding > 0) { to_write = padding < a->null_length ? padding : a->null_length; @@ -1387,6 +1381,6 @@ base64_encode(const char *s, size_t len) break; } /* Add trailing NUL character so output is a valid C string. */ - *d++ = '\0'; + *d = '\0'; return (out); }