From owner-svn-src-head@freebsd.org Thu Mar 9 19:02:38 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8AF30D06000; Thu, 9 Mar 2017 19:02:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 438E717B4; Thu, 9 Mar 2017 19:02:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v29J2b31005148; Thu, 9 Mar 2017 19:02:37 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v29J2aRH005143; Thu, 9 Mar 2017 19:02:36 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201703091902.v29J2aRH005143@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 9 Mar 2017 19:02:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r314972 - head/usr.bin/localedef X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 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: Thu, 09 Mar 2017 19:02:38 -0000 Author: pfg Date: Thu Mar 9 19:02:36 2017 New Revision: 314972 URL: https://svnweb.freebsd.org/changeset/base/314972 Log: Revert r314969, r314961: The localdef(1) changes are breaking world: 00:18:40.750 /usr/src/share/colldef/af_ZA.UTF-8.src: 2421: error: Bad file descriptor I will fix them offline. Reported by: lwshu and many others Modified: head/usr.bin/localedef/collate.c head/usr.bin/localedef/ctype.c head/usr.bin/localedef/localedef.c head/usr.bin/localedef/localedef.h head/usr.bin/localedef/time.c Modified: head/usr.bin/localedef/collate.c ============================================================================== --- head/usr.bin/localedef/collate.c Thu Mar 9 18:37:17 2017 (r314971) +++ head/usr.bin/localedef/collate.c Thu Mar 9 19:02:36 2017 (r314972) @@ -1,5 +1,5 @@ /* - * Copyright 2017 Nexenta Systems, Inc. + * Copyright 2010 Nexenta Systems, Inc. All rights reserved. * Copyright 2015 John Marino * * This source code is derived from the illumos localedef command, and @@ -1291,25 +1291,21 @@ dump_collate(void) if ((wr_category(vers, COLLATE_STR_LEN, f) < 0) || (wr_category(&collinfo, sizeof (collinfo), f) < 0) || (wr_category(&chars, sizeof (chars), f) < 0)) { - delete_category(f); return; } for (i = 0; i < NUM_WT; i++) { sz = sizeof (collate_subst_t) * collinfo.subst_count[i]; if (wr_category(subst[i], sz, f) < 0) { - delete_category(f); return; } } sz = sizeof (collate_chain_t) * collinfo.chain_count; if (wr_category(chain, sz, f) < 0) { - delete_category(f); return; } sz = sizeof (collate_large_t) * collinfo.large_count; if (wr_category(large, sz, f) < 0) { - delete_category(f); return; } Modified: head/usr.bin/localedef/ctype.c ============================================================================== --- head/usr.bin/localedef/ctype.c Thu Mar 9 18:37:17 2017 (r314971) +++ head/usr.bin/localedef/ctype.c Thu Mar 9 19:02:36 2017 (r314972) @@ -1,5 +1,5 @@ /* - * Copyright 2017 Nexenta Systems, Inc. + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright 2012 Garrett D'Amore All rights reserved. * Copyright 2015 John Marino * @@ -306,7 +306,7 @@ dump_ctype(void) return; (void) memcpy(rl.magic, _FILE_RUNE_MAGIC_1, 8); - (void) strlcpy(rl.encoding, get_wide_encoding(), sizeof (rl.encoding)); + (void) strncpy(rl.encoding, get_wide_encoding(), sizeof (rl.encoding)); /* * Initialize the identity map. @@ -379,12 +379,12 @@ dump_ctype(void) if ((ctn->ctype & _ISALPHA) && (ctn->ctype & (_ISPUNCT|_ISDIGIT))) conflict++; - if ((ctn->ctype & _ISPUNCT) && + if ((ctn->ctype & _ISPUNCT) & (ctn->ctype & (_ISDIGIT|_ISALPHA|_ISXDIGIT))) conflict++; if ((ctn->ctype & _ISSPACE) && (ctn->ctype & _ISGRAPH)) conflict++; - if ((ctn->ctype & _ISCNTRL) && (ctn->ctype & _ISPRINT)) + if ((ctn->ctype & _ISCNTRL) & _ISPRINT) conflict++; if ((wc == ' ') && (ctn->ctype & (_ISPUNCT|_ISGRAPH))) conflict++; @@ -412,10 +412,8 @@ dump_ctype(void) ct[rl.runetype_ext_nranges-1].max = wc; } else { rl.runetype_ext_nranges++; - ct = realloc(ct, rl.runetype_ext_nranges * - sizeof (*ct)); - if (ct == NULL) - goto fail; + ct = realloc(ct, + sizeof (*ct) * rl.runetype_ext_nranges); ct[rl.runetype_ext_nranges - 1].min = wc; ct[rl.runetype_ext_nranges - 1].max = wc; ct[rl.runetype_ext_nranges - 1].map = ctn->ctype; @@ -429,10 +427,8 @@ dump_ctype(void) last_lo = ctn; } else { rl.maplower_ext_nranges++; - lo = realloc(lo, rl.maplower_ext_nranges * - sizeof (*lo)); - if (lo == NULL) - goto fail; + lo = realloc(lo, + sizeof (*lo) * rl.maplower_ext_nranges); lo[rl.maplower_ext_nranges - 1].min = wc; lo[rl.maplower_ext_nranges - 1].max = wc; lo[rl.maplower_ext_nranges - 1].map = ctn->tolower; @@ -447,10 +443,8 @@ dump_ctype(void) last_up = ctn; } else { rl.mapupper_ext_nranges++; - up = realloc(up, rl.mapupper_ext_nranges * - sizeof (*up)); - if (up == NULL) - goto fail; + up = realloc(up, + sizeof (*up) * rl.mapupper_ext_nranges); up[rl.mapupper_ext_nranges - 1].min = wc; up[rl.mapupper_ext_nranges - 1].max = wc; up[rl.mapupper_ext_nranges - 1].map = ctn->toupper; @@ -458,17 +452,12 @@ dump_ctype(void) } } - if ((wr_category(&rl, sizeof (rl), f) == 0) && - (wr_category(ct, sizeof (*ct) * rl.runetype_ext_nranges, f) == 0) && - (wr_category(lo, sizeof (*lo) * rl.maplower_ext_nranges, f) == 0) && - (wr_category(up, sizeof (*up) * rl.mapupper_ext_nranges, f) == 0)) { - close_category(f); - goto out; + if ((wr_category(&rl, sizeof (rl), f) < 0) || + (wr_category(ct, sizeof (*ct) * rl.runetype_ext_nranges, f) < 0) || + (wr_category(lo, sizeof (*lo) * rl.maplower_ext_nranges, f) < 0) || + (wr_category(up, sizeof (*up) * rl.mapupper_ext_nranges, f) < 0)) { + return; } -fail: - delete_category(f); -out: - free(ct); - free(lo); - free(up);} + close_category(f); +} Modified: head/usr.bin/localedef/localedef.c ============================================================================== --- head/usr.bin/localedef/localedef.c Thu Mar 9 18:37:17 2017 (r314971) +++ head/usr.bin/localedef/localedef.c Thu Mar 9 19:02:36 2017 (r314972) @@ -1,5 +1,5 @@ /* - * Copyright 2017 Nexenta Systems, Inc. + * Copyright 2010 Nexenta Systems, Inc. All rights reserved. * Copyright 2015 John Marino * * This source code is derived from the illumos localedef command, and @@ -126,19 +126,12 @@ open_category(void) } void -delete_category(FILE *f) -{ - (void) fclose(f); - (void) unlink(category_file()); -} - -void close_category(FILE *f) { - if (fchmod(fileno(f), 0644) < 0 || - fclose(f) != 0) { + if (fchmod(fileno(f), 0644) < 0) { + (void) fclose(f); + (void) unlink(category_file()); errf(strerror(errno)); - delete_category(f); } if (fclose(f) < 0) { (void) unlink(category_file()); @@ -200,13 +193,15 @@ int putl_category(const char *s, FILE *f) { if (s && fputs(s, f) == EOF) { + (void) fclose(f); + (void) unlink(category_file()); errf(strerror(errno)); - delete_category(f); return (EOF); } if (fputc('\n', f) == EOF) { + (void) fclose(f); + (void) unlink(category_file()); errf(strerror(errno)); - delete_category(f); return (EOF); } return (0); @@ -219,8 +214,9 @@ wr_category(void *buf, size_t sz, FILE * return (0); } if (fwrite(buf, sz, 1, f) < 1) { + (void) fclose(f); + (void) unlink(category_file()); errf(strerror(errno)); - delete_category(f); return (EOF); } return (0); Modified: head/usr.bin/localedef/localedef.h ============================================================================== --- head/usr.bin/localedef/localedef.h Thu Mar 9 18:37:17 2017 (r314971) +++ head/usr.bin/localedef/localedef.h Thu Mar 9 19:02:36 2017 (r314972) @@ -1,5 +1,5 @@ /* - * Copyright 2017 Nexenta Systems, Inc. + * Copyright 2010 Nexenta Systems, Inc. All rights reserved. * Copyright 2015 John Marino * * This source code is derived from the illumos localedef command, and @@ -60,7 +60,6 @@ void warn(const char *, ...); int putl_category(const char *, FILE *); int wr_category(void *, size_t, FILE *); FILE *open_category(void); -void delete_category(FILE *); void close_category(FILE *); void copy_category(char *); const char *category_name(void); Modified: head/usr.bin/localedef/time.c ============================================================================== --- head/usr.bin/localedef/time.c Thu Mar 9 18:37:17 2017 (r314971) +++ head/usr.bin/localedef/time.c Thu Mar 9 19:02:36 2017 (r314972) @@ -1,5 +1,5 @@ /* - * Copyright 2017 Nexenta Systems, Inc. + * Copyright 2010 Nexenta Systems, Inc. All rights reserved. * Copyright 2015 John Marino * * This source code is derived from the illumos localedef command, and @@ -78,7 +78,7 @@ add_time_str(wchar_t *wcs) break; case T_DATE_FMT: /* - * This one is a Solaris extension. Too bad date just + * This one is a Solaris extension, Too bad date just * doesn't use %c, which would be simpler. */ tm.date_fmt = str;