forked from pool/timezone
Accepting request 307993 from home:leonardocf:branches:Base:System
- Fix check for empty components in absolute path - Fix post-install script to overwrite the temporary file when attempting to create /etc/localtime as a hard link [bsc#928841] - Update to 2015d [bsc#928584, bsc#928246] OBS-URL: https://build.opensuse.org/request/show/307993 OBS-URL: https://build.opensuse.org/package/show/Base:System/timezone?expand=0&rev=160
This commit is contained in:
parent
f9526fb18e
commit
6620a7ba51
@ -1,3 +1,30 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 19 11:02:27 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- tzcode-zic-empty-comp.diff: Replaced by more sophisticated fix
|
||||||
|
from upstream
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 18 13:57:44 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- tzcode-zic-empty-comp.diff: Fix check for empty components in
|
||||||
|
absolute path
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 14 12:16:44 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- Fix post-install script to overwrite the temporary file when
|
||||||
|
attempting to create /etc/localtime as a hard link [bsc#928841]
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 14 12:08:51 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- timezone update 2015d [bsc#928584, bsc#928246]
|
||||||
|
* Egypt announced it is off DST indefinitely
|
||||||
|
* zic has some minor performance improvements
|
||||||
|
- tzcode-fromname.patch, tzcode-link.diff, tzcode-symlink.patch,
|
||||||
|
tzcode-zic.diff, tzdata-china.diff: Rebase
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Apr 21 23:38:49 UTC 2015 - crrodriguez@opensuse.org
|
Tue Apr 21 23:38:49 UTC 2015 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ License: BSD-3-Clause and SUSE-Public-Domain
|
|||||||
Group: System/Base
|
Group: System/Base
|
||||||
# COMMON-BEGIN
|
# COMMON-BEGIN
|
||||||
# COMMON-BEGIN
|
# COMMON-BEGIN
|
||||||
Version: 2015c
|
Version: 2015d
|
||||||
Release: 0
|
Release: 0
|
||||||
Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
|
Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
|
||||||
Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
|
Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
|
||||||
@ -40,6 +40,7 @@ Patch2: tzcode-fromname.patch
|
|||||||
Patch3: iso3166-uk.diff
|
Patch3: iso3166-uk.diff
|
||||||
Patch4: tzcode-link.diff
|
Patch4: tzcode-link.diff
|
||||||
Patch5: tzcode-symlink.patch
|
Patch5: tzcode-symlink.patch
|
||||||
|
Patch6: tzcode-zic-empty-comp.diff
|
||||||
# COMMON-END
|
# COMMON-END
|
||||||
# COMMON-END
|
# COMMON-END
|
||||||
Url: http://www.gnu.org/software/libc/libc.html
|
Url: http://www.gnu.org/software/libc/libc.html
|
||||||
@ -63,6 +64,7 @@ package is intended for Java Virtual Machine based on OpenJDK.
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch6 -p1
|
||||||
%if 0%{?suse_version} < 1220
|
%if 0%{?suse_version} < 1220
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%else
|
%else
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package timezone-java
|
# spec file for package timezone-java
|
||||||
#
|
#
|
||||||
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
@ -1,3 +1,30 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 19 11:02:27 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- tzcode-zic-empty-comp.diff: Replaced by more sophisticated fix
|
||||||
|
from upstream
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 18 13:57:44 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- tzcode-zic-empty-comp.diff: Fix check for empty components in
|
||||||
|
absolute path
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 14 12:16:44 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- Fix post-install script to overwrite the temporary file when
|
||||||
|
attempting to create /etc/localtime as a hard link [bsc#928841]
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 14 12:08:51 UTC 2015 - lchiquitto@suse.com
|
||||||
|
|
||||||
|
- timezone update 2015d [bsc#928584, bsc#928246]
|
||||||
|
* Egypt announced it is off DST indefinitely
|
||||||
|
* zic has some minor performance improvements
|
||||||
|
- tzcode-fromname.patch, tzcode-link.diff, tzcode-symlink.patch,
|
||||||
|
tzcode-zic.diff, tzdata-china.diff: Rebase
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Apr 21 23:38:49 UTC 2015 - crrodriguez@opensuse.org
|
Tue Apr 21 23:38:49 UTC 2015 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Group: System/Base
|
|||||||
Url: http://www.iana.org/time-zones
|
Url: http://www.iana.org/time-zones
|
||||||
PreReq: filesystem, coreutils
|
PreReq: filesystem, coreutils
|
||||||
# COMMON-BEGIN
|
# COMMON-BEGIN
|
||||||
Version: 2015c
|
Version: 2015d
|
||||||
Release: 0
|
Release: 0
|
||||||
Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
|
Source: ftp://ftp.iana.org/tz/releases/tzdata%{version}.tar.gz
|
||||||
Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
|
Source1: ftp://ftp.iana.org/tz/releases/tzcode%{version}.tar.gz
|
||||||
@ -38,6 +38,7 @@ Patch2: tzcode-fromname.patch
|
|||||||
Patch3: iso3166-uk.diff
|
Patch3: iso3166-uk.diff
|
||||||
Patch4: tzcode-link.diff
|
Patch4: tzcode-link.diff
|
||||||
Patch5: tzcode-symlink.patch
|
Patch5: tzcode-symlink.patch
|
||||||
|
Patch6: tzcode-zic-empty-comp.diff
|
||||||
# COMMON-END
|
# COMMON-END
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -57,6 +58,7 @@ can select an appropriate time zone for your system with YaST.
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch6 -p1
|
||||||
%if 0%{?suse_version} < 1220
|
%if 0%{?suse_version} < 1220
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%else
|
%else
|
||||||
@ -110,7 +112,7 @@ then
|
|||||||
ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
|
ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
|
||||||
%else
|
%else
|
||||||
new=$(mktemp /etc/localtime.XXXXXXXX) || exit 1
|
new=$(mktemp /etc/localtime.XXXXXXXX) || exit 1
|
||||||
cp -l /usr/share/zoneinfo/$TIMEZONE $new 2>/dev/null || cp -fp /usr/share/zoneinfo/$TIMEZONE $new
|
cp -fl /usr/share/zoneinfo/$TIMEZONE $new 2>/dev/null || cp -fp /usr/share/zoneinfo/$TIMEZONE $new
|
||||||
mv -f $new /etc/localtime
|
mv -f $new /etc/localtime
|
||||||
%endif
|
%endif
|
||||||
else
|
else
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
Index: timezone-2014i/zic.c
|
Index: timezone-2015d/zic.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- timezone-2014i.orig/zic.c
|
--- timezone-2015d.orig/zic.c
|
||||||
+++ timezone-2014i/zic.c
|
+++ timezone-2015d/zic.c
|
||||||
@@ -729,17 +729,17 @@ dolink(const char *const fromfield, cons
|
@@ -757,7 +757,7 @@ dolink(const char *const fromfield, cons
|
||||||
|
|
||||||
result = link(fromname, toname);
|
result = link(fromname, toname);
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
- const char *s = fromfield;
|
- const char *s = fromfield;
|
||||||
+ const char *s = fromname;
|
+ const char *s = fromname;
|
||||||
const char *t;
|
const char *t;
|
||||||
register char * symlinkcontents = NULL;
|
char *p;
|
||||||
|
size_t dotdots = 0;
|
||||||
|
@@ -766,10 +766,10 @@ dolink(const char *const fromfield, cons
|
||||||
do
|
do
|
||||||
t = s;
|
t = s;
|
||||||
while ((s = strchr(s, '/'))
|
while ((s = strchr(s, '/'))
|
||||||
@ -19,8 +20,8 @@ Index: timezone-2014i/zic.c
|
|||||||
+ && ! strncmp (fromname, tofield,
|
+ && ! strncmp (fromname, tofield,
|
||||||
+ ++s - fromname));
|
+ ++s - fromname));
|
||||||
|
|
||||||
- for (s = tofield + (t - fromfield);
|
- for (s = tofield + (t - fromfield); *s; s++)
|
||||||
+ for (s = tofield + (t - fromname);
|
+ for (s = tofield + (t - fromname); *s; s++)
|
||||||
(s = strchr(s, '/'));
|
dotdots += *s == '/';
|
||||||
s++)
|
symlinkcontents
|
||||||
symlinkcontents =
|
= emalloc(3 * dotdots + strlen(t) + 1);
|
||||||
|
@ -15,12 +15,12 @@ This patch changes the order to:
|
|||||||
2. File copy
|
2. File copy
|
||||||
3. Symbolic link
|
3. Symbolic link
|
||||||
|
|
||||||
Index: timezone-2014g/zic.c
|
Index: timezone-2015d/zic.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- timezone-2014g.orig/zic.c
|
--- timezone-2015d.orig/zic.c
|
||||||
+++ timezone-2014g/zic.c
|
+++ timezone-2015d/zic.c
|
||||||
@@ -686,6 +686,23 @@ namecheck(const char *name)
|
@@ -734,6 +734,23 @@ relname(char const *dir, char const *bas
|
||||||
componentcheck(name, component, cp);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+static int
|
+static int
|
||||||
@ -43,7 +43,7 @@ Index: timezone-2014g/zic.c
|
|||||||
static void
|
static void
|
||||||
dolink(const char *const fromfield, const char *const tofield)
|
dolink(const char *const fromfield, const char *const tofield)
|
||||||
{
|
{
|
||||||
@@ -728,6 +745,8 @@ dolink(const char *const fromfield, cons
|
@@ -763,6 +780,8 @@ dolink(const char *const fromfield, cons
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
|
||||||
result = link(fromname, toname);
|
result = link(fromname, toname);
|
||||||
|
@ -13,11 +13,11 @@ This patch changes the logic slightly: keep using symbolic
|
|||||||
links if /etc/localtime is already one. If it isn't, use
|
links if /etc/localtime is already one. If it isn't, use
|
||||||
the default order as listed above.
|
the default order as listed above.
|
||||||
|
|
||||||
Index: timezone-2014i/zic.c
|
Index: timezone-2015d/zic.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- timezone-2014i.orig/zic.c
|
--- timezone-2015d.orig/zic.c
|
||||||
+++ timezone-2014i/zic.c
|
+++ timezone-2015d/zic.c
|
||||||
@@ -106,7 +106,7 @@ static int addtype(zic_t, char const *,
|
@@ -104,7 +104,7 @@ static int addtype(zic_t, char const *,
|
||||||
static void leapadd(zic_t, bool, int, int);
|
static void leapadd(zic_t, bool, int, int);
|
||||||
static void adjleap(void);
|
static void adjleap(void);
|
||||||
static void associate(void);
|
static void associate(void);
|
||||||
@ -26,7 +26,7 @@ Index: timezone-2014i/zic.c
|
|||||||
static char ** getfields(char * buf);
|
static char ** getfields(char * buf);
|
||||||
static zic_t gethms(const char * string, const char * errstring,
|
static zic_t gethms(const char * string, const char * errstring,
|
||||||
bool);
|
bool);
|
||||||
@@ -608,7 +608,7 @@ _("%s: More than one -L option specified
|
@@ -629,7 +629,7 @@ _("%s: More than one -L option specified
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < nlinks; ++i) {
|
for (i = 0; i < nlinks; ++i) {
|
||||||
eat(links[i].l_filename, links[i].l_linenum);
|
eat(links[i].l_filename, links[i].l_linenum);
|
||||||
@ -35,7 +35,7 @@ Index: timezone-2014i/zic.c
|
|||||||
if (noise)
|
if (noise)
|
||||||
for (j = 0; j < nlinks; ++j)
|
for (j = 0; j < nlinks; ++j)
|
||||||
if (strcmp(links[i].l_to,
|
if (strcmp(links[i].l_to,
|
||||||
@@ -617,11 +617,11 @@ _("%s: More than one -L option specified
|
@@ -638,11 +638,11 @@ _("%s: More than one -L option specified
|
||||||
}
|
}
|
||||||
if (lcltime != NULL) {
|
if (lcltime != NULL) {
|
||||||
eat(_("command line"), 1);
|
eat(_("command line"), 1);
|
||||||
@ -49,7 +49,7 @@ Index: timezone-2014i/zic.c
|
|||||||
}
|
}
|
||||||
if (warnings && (ferror(stderr) || fclose(stderr) != 0))
|
if (warnings && (ferror(stderr) || fclose(stderr) != 0))
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
@@ -687,8 +687,9 @@ namecheck(const char *name)
|
@@ -735,14 +735,17 @@ relname(char const *dir, char const *bas
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -60,18 +60,15 @@ Index: timezone-2014i/zic.c
|
|||||||
register char * fromname;
|
register char * fromname;
|
||||||
register char * toname;
|
register char * toname;
|
||||||
register int fromisdir;
|
register int fromisdir;
|
||||||
@@ -701,6 +702,10 @@ dolink(const char *const fromfield, cons
|
|
||||||
fromname = ecatalloc(fromname, "/");
|
fromname = relname(directory, fromfield);
|
||||||
fromname = ecatalloc(fromname, fromfield);
|
toname = relname(directory, tofield);
|
||||||
}
|
|
||||||
+
|
|
||||||
+ if (lstat(fromname, &st) == 0 && S_ISLNK(st.st_mode))
|
+ if (lstat(fromname, &st) == 0 && S_ISLNK(st.st_mode))
|
||||||
+ defaultsymlink = true;
|
+ defaultsymlink = true;
|
||||||
+
|
/*
|
||||||
if (tofield[0] == '/')
|
** We get to be careful here since
|
||||||
toname = ecpyalloc(tofield);
|
** there's a fair chance of root running us.
|
||||||
else {
|
@@ -756,14 +759,14 @@ dolink(const char *const fromfield, cons
|
||||||
@@ -721,14 +726,15 @@ dolink(const char *const fromfield, cons
|
|
||||||
}
|
}
|
||||||
if (itsdir(toname) <= 0)
|
if (itsdir(toname) <= 0)
|
||||||
remove(toname);
|
remove(toname);
|
||||||
@ -81,7 +78,7 @@ Index: timezone-2014i/zic.c
|
|||||||
|
|
||||||
if (! mkdirs(toname))
|
if (! mkdirs(toname))
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
-
|
||||||
- result = link(fromname, toname);
|
- result = link(fromname, toname);
|
||||||
- if (result != 0) {
|
- if (result != 0) {
|
||||||
+ if (!defaultsymlink)
|
+ if (!defaultsymlink)
|
||||||
@ -89,4 +86,4 @@ Index: timezone-2014i/zic.c
|
|||||||
+ if ((defaultsymlink || (!defaultsymlink && result != 0))) {
|
+ if ((defaultsymlink || (!defaultsymlink && result != 0))) {
|
||||||
const char *s = fromname;
|
const char *s = fromname;
|
||||||
const char *t;
|
const char *t;
|
||||||
register char * symlinkcontents = NULL;
|
char *p;
|
||||||
|
200
tzcode-zic-empty-comp.diff
Normal file
200
tzcode-zic-empty-comp.diff
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
commit fc861a9e137c63e1b0d562ad09d0dd5f4d8e798f
|
||||||
|
Author: Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
Date: Tue May 19 01:24:30 2015 -0700
|
||||||
|
|
||||||
|
Fix zic -l problem with /etc/localtime
|
||||||
|
|
||||||
|
Problem reported by Leonardo Chiquitto in:
|
||||||
|
http://mm.icann.org/pipermail/tz/2015-May/022276.html
|
||||||
|
Apparently his zic was built with -DTZDEFAULT=\"/etc/localtime\".
|
||||||
|
* NEWS: Document this.
|
||||||
|
* zic.c (verror): Don't dump core if filename is NULL.
|
||||||
|
(main, infile, mkdirs): Omit unnecessary trailing \n in diagnostic.
|
||||||
|
(componentcheck, namecheck): Now returns bool. All callers changed.
|
||||||
|
(componentcheck): Make the diagnostics more understandable.
|
||||||
|
Don't exit on error, so that the user can see multiple errors.
|
||||||
|
(dolink, writezone): Don't namecheck here.
|
||||||
|
(inzsub, inlink): Do it here instead.
|
||||||
|
This generates better diagnostics, and avoids the bug, since
|
||||||
|
it doesn't apply namecheck to TZDEFAULT or to TZDEFRULES.
|
||||||
|
|
||||||
|
Index: timezone-2015d/NEWS
|
||||||
|
===================================================================
|
||||||
|
--- timezone-2015d.orig/NEWS
|
||||||
|
+++ timezone-2015d/NEWS
|
||||||
|
@@ -25,6 +25,10 @@ Release 2015d - 2015-04-24 08:09:46 -070
|
||||||
|
|
||||||
|
zic has some minor performance improvements.
|
||||||
|
|
||||||
|
+ zic -l no longer fails when compiled with -DTZDEFAULT=\"/etc/localtime\".
|
||||||
|
+ This fixes a bug introduced in Release 2014f.
|
||||||
|
+ (Problem reported by Leonardo Chiquitto.)
|
||||||
|
+
|
||||||
|
|
||||||
|
Release 2015c - 2015-04-11 08:55:55 -0700
|
||||||
|
|
||||||
|
Index: timezone-2015d/zic.c
|
||||||
|
===================================================================
|
||||||
|
--- timezone-2015d.orig/zic.c
|
||||||
|
+++ timezone-2015d/zic.c
|
||||||
|
@@ -443,7 +443,8 @@ verror(const char *const string, va_list
|
||||||
|
** zic ... 2>&1 | error -t "*" -v
|
||||||
|
** on BSD systems.
|
||||||
|
*/
|
||||||
|
- fprintf(stderr, _("\"%s\", line %d: "), filename, linenum);
|
||||||
|
+ if (filename)
|
||||||
|
+ fprintf(stderr, _("\"%s\", line %d: "), filename, linenum);
|
||||||
|
vfprintf(stderr, string, args);
|
||||||
|
if (rfilename != NULL)
|
||||||
|
fprintf(stderr, _(" (rule from \"%s\", line %d)"),
|
||||||
|
@@ -595,7 +596,7 @@ _("%s: More than one -L option specified
|
||||||
|
noise = true;
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
- warning(_("-s ignored\n"));
|
||||||
|
+ warning(_("-s ignored"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
|
||||||
|
@@ -648,36 +649,43 @@ _("%s: More than one -L option specified
|
||||||
|
return errors ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void
|
||||||
|
+static bool
|
||||||
|
componentcheck(char const *name, char const *component,
|
||||||
|
char const *component_end)
|
||||||
|
{
|
||||||
|
enum { component_len_max = 14 };
|
||||||
|
size_t component_len = component_end - component;
|
||||||
|
if (component_len == 0) {
|
||||||
|
- fprintf(stderr, _("%s: file name '%s' contains empty component"),
|
||||||
|
- progname, name);
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
+ if (!*name)
|
||||||
|
+ error (_("empty file name"));
|
||||||
|
+ else
|
||||||
|
+ error (_(component == name
|
||||||
|
+ ? "file name '%s' begins with '/'"
|
||||||
|
+ : *component_end
|
||||||
|
+ ? "file name '%s' contains '//'"
|
||||||
|
+ : "file name '%s' ends with '/'"),
|
||||||
|
+ name);
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
if (0 < component_len && component_len <= 2
|
||||||
|
&& component[0] == '.' && component_end[-1] == '.') {
|
||||||
|
- fprintf(stderr, _("%s: file name '%s' contains"
|
||||||
|
- " '%.*s' component"),
|
||||||
|
- progname, name, (int) component_len, component);
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
+ error(_("file name '%s' contains '%.*s' component"),
|
||||||
|
+ name, (int) component_len, component);
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
- if (!noise)
|
||||||
|
- return;
|
||||||
|
- if (0 < component_len && component[0] == '-')
|
||||||
|
- warning(_("file name '%s' component contains leading '-'"),
|
||||||
|
- name);
|
||||||
|
- if (component_len_max < component_len)
|
||||||
|
- warning(_("file name '%s' contains overlength component"
|
||||||
|
- " '%.*s...'"),
|
||||||
|
- name, component_len_max, component);
|
||||||
|
+ if (noise) {
|
||||||
|
+ if (0 < component_len && component[0] == '-')
|
||||||
|
+ warning(_("file name '%s' component contains leading '-'"),
|
||||||
|
+ name);
|
||||||
|
+ if (component_len_max < component_len)
|
||||||
|
+ warning(_("file name '%s' contains overlength component"
|
||||||
|
+ " '%.*s...'"),
|
||||||
|
+ name, component_len_max, component);
|
||||||
|
+ }
|
||||||
|
+ return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void
|
||||||
|
+static bool
|
||||||
|
namecheck(const char *name)
|
||||||
|
{
|
||||||
|
register char const *cp;
|
||||||
|
@@ -701,14 +709,14 @@ namecheck(const char *name)
|
||||||
|
? _("file name '%s' contains byte '%c'")
|
||||||
|
: _("file name '%s' contains byte '\\%o'")),
|
||||||
|
name, c);
|
||||||
|
- return;
|
||||||
|
}
|
||||||
|
if (c == '/') {
|
||||||
|
- componentcheck(name, component, cp);
|
||||||
|
+ if (!componentcheck(name, component, cp))
|
||||||
|
+ return false;
|
||||||
|
component = cp + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- componentcheck(name, component, cp);
|
||||||
|
+ return componentcheck(name, component, cp);
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
@@ -733,7 +741,6 @@ dolink(const char *const fromfield, cons
|
||||||
|
register char * toname;
|
||||||
|
register int fromisdir;
|
||||||
|
|
||||||
|
- namecheck(tofield);
|
||||||
|
fromname = relname(directory, fromfield);
|
||||||
|
toname = relname(directory, tofield);
|
||||||
|
/*
|
||||||
|
@@ -1022,9 +1029,9 @@ infile(const char *name)
|
||||||
|
break;
|
||||||
|
case LC_LEAP:
|
||||||
|
if (name != leapsec)
|
||||||
|
- warning(
|
||||||
|
-_("%s: Leap line in non leap seconds file %s\n"),
|
||||||
|
- progname, name);
|
||||||
|
+ warning(_("%s: Leap line in non leap"
|
||||||
|
+ " seconds file %s"),
|
||||||
|
+ progname, name);
|
||||||
|
else inleap(fields, nfields);
|
||||||
|
wantcont = false;
|
||||||
|
break;
|
||||||
|
@@ -1180,7 +1187,9 @@ inzsub(char **fields, int nfields, bool
|
||||||
|
i_untilday = ZFC_TILDAY;
|
||||||
|
i_untiltime = ZFC_TILTIME;
|
||||||
|
z.z_name = NULL;
|
||||||
|
- } else {
|
||||||
|
+ } else if (!namecheck(fields[ZF_NAME]))
|
||||||
|
+ return false;
|
||||||
|
+ else {
|
||||||
|
i_gmtoff = ZF_GMTOFF;
|
||||||
|
i_rule = ZF_RULE;
|
||||||
|
i_format = ZF_FORMAT;
|
||||||
|
@@ -1356,10 +1365,8 @@ inlink(register char **const fields, con
|
||||||
|
error(_("blank FROM field on Link line"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
- if (*fields[LF_TO] == '\0') {
|
||||||
|
- error(_("blank TO field on Link line"));
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
+ if (! namecheck(fields[LF_TO]))
|
||||||
|
+ return;
|
||||||
|
l.l_filename = filename;
|
||||||
|
l.l_linenum = linenum;
|
||||||
|
l.l_from = ecpyalloc(fields[LF_FROM]);
|
||||||
|
@@ -1589,7 +1596,6 @@ writezone(const char *const name, const
|
||||||
|
void *typesptr = ats + timecnt;
|
||||||
|
unsigned char *types = typesptr;
|
||||||
|
|
||||||
|
- namecheck(name);
|
||||||
|
/*
|
||||||
|
** Sort.
|
||||||
|
*/
|
||||||
|
@@ -2954,7 +2960,7 @@ mkdirs(char *argname)
|
||||||
|
if (itsdir(name) <= 0) {
|
||||||
|
char const *e = strerror(err);
|
||||||
|
warning(_("%s: Can't create directory"
|
||||||
|
- " %s: %s\n"),
|
||||||
|
+ " %s: %s"),
|
||||||
|
progname, name, e);
|
||||||
|
free(name);
|
||||||
|
return false;
|
@ -1,10 +1,10 @@
|
|||||||
Index: timezone-2014i/zic.c
|
Index: timezone-2015d/zic.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- timezone-2014i.orig/zic.c
|
--- timezone-2015d.orig/zic.c
|
||||||
+++ timezone-2014i/zic.c
|
+++ timezone-2015d/zic.c
|
||||||
@@ -747,8 +747,10 @@ dolink(const char *const fromfield, cons
|
@@ -777,8 +777,10 @@ dolink(const char *const fromfield, cons
|
||||||
"../");
|
memcpy(p, "../", 3);
|
||||||
symlinkcontents = ecatalloc(symlinkcontents, t);
|
strcpy(p, t);
|
||||||
result = symlink(symlinkcontents, toname);
|
result = symlink(symlinkcontents, toname);
|
||||||
+#if 0
|
+#if 0
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:7feeb1a60dff8b179c884f6e3aa7684606f4eaeb7f7ecc61a6bb81e3e38af42e
|
|
||||||
size 184278
|
|
@ -1,17 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1
|
|
||||||
|
|
||||||
iQIcBAABAgAGBQJVKUS9AAoJEO2X6Q5iqn40JdoP/25PmMMLls7GKH2MyL3Hgfnk
|
|
||||||
y3eAj2bwV4KtT9OhUbEVgDcG+ZNrorQbRZ/p6Bw5li8lKoAV6S9CbbPbb/QQYciu
|
|
||||||
0vUn8U5rLCyoHeaeubtf+O6ChyILBsI/oYn/ROQ2meOCP2L35LrGSlkeHTOQd+V0
|
|
||||||
cyzQ7XfkiO1mbapleIXH46qwbq8kN+GvY64nHxuTwWQSmmV1Z1nBHysNriM9BtXR
|
|
||||||
GsOh0CQ/B7/q1XKbRcoT2B/zuBtuUK/J16UHeSBsy1iQXT9eKx5UdAK82MyRh6Vq
|
|
||||||
RjQggIxJfCILj+yY87UwNirVA4c5cIPCyBeFGyABH5SyAUqJwzka3R1BBe1wFecW
|
|
||||||
eCSqlRMgFSQoRH7/W4HnXhXUx8p06lJR6fzTM/ao8i99K8vdxrVxaOz8j+ouv7kW
|
|
||||||
foOxyL8d6f3S9cQVuFV9igF44xFJ7IbI61DdhYGA/x9blJidNPrAgFi2LeChK2Pn
|
|
||||||
EqOIR7w9+AhJ+cidtuhaxUG+VWt6lTSPUF9Zj5tSvFUUQfq9mM2HHUmqG1j8vXDp
|
|
||||||
8lcsIF0Pdt6AvMw9y7QrtoUiIiIa0XABJaj3HCPnEB3AAyG277oDbQdyToA87rbd
|
|
||||||
RlyOoV7W1cNVm+yyrY43mEji3eF5tU8SRflfOSw3Tw3hqg5ShW1Wb7wGuCnwBppc
|
|
||||||
3ixjt1wMIKLox/LXA/YI
|
|
||||||
=ZAkh
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
tzcode2015d.tar.gz
Normal file
3
tzcode2015d.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:221af54ec5c42eaf0101159ffe1256a883d1c14c46228d42774c656a56317128
|
||||||
|
size 184178
|
17
tzcode2015d.tar.gz.asc
Normal file
17
tzcode2015d.tar.gz.asc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v1
|
||||||
|
|
||||||
|
iQIcBAABAgAGBQJVOl3RAAoJEO2X6Q5iqn40BtMP/1opNPVcTRK/GFw7wQXpegzS
|
||||||
|
mGM4R1LXua2txG1P8gEkeNHimRqeDWixI/crg4sOoKAb10wvkf70lAI3cVRCMHS+
|
||||||
|
F4zL3JQJktj/LXBJGmNOwonTdz0mBQASF7DnxX8mL+/QpyKZSy4pTRQDIBKhzlKM
|
||||||
|
PuIpVT6HYXLzi+L2jim2W3EU/7Ja0pOB0pFJNGoJ2SGhja2jvj3Ae3hzfsyXbcQI
|
||||||
|
kQ4Eo7k6hCu0FP7YtGg8D2CqGvXTrErUNI8gTIvT2mV8aDy9j6SbAl0XrTz1UASU
|
||||||
|
lrzwQ/GgGhLeYFMriCCo5zf+H8pjm4+N4JniEf30lIB06CGspQg3ZhchdrexHfWM
|
||||||
|
j+exPhzadR+qQMEdQ95oiY/J5u4N1ykE9WGdianFUlINklCqejImYYKAzMWzFQSs
|
||||||
|
GACVxBp9WWZ1VEAU3eag6TyVKJGiQMtpaGolpVnCaU1JTcFAxpFmOZ55BosS8J/w
|
||||||
|
c+cqke7zTtFfaPJhuylSOca95lAEd14HP+nAFxvGwIhX8z3FbM8pRlOW+rV2wIYH
|
||||||
|
UUAPrSKu+QFTvOl1+TnrydE9cHjbmDC2Vknz1SGel7e2USXTEB4UvgzVyr5E7qf6
|
||||||
|
ckKB7l6LRIfIXlJSojcF06P2Xz4UJlIbzwA1oXpaK7g9H4YZMGDqIB5HhBRVZx6p
|
||||||
|
KG2eiGYTmCnJt3Gk6SY2
|
||||||
|
=cvHz
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -1,8 +1,8 @@
|
|||||||
Index: timezone-2014i/asia
|
Index: timezone-2015d/asia
|
||||||
===================================================================
|
===================================================================
|
||||||
--- timezone-2014i.orig/asia
|
--- timezone-2015d.orig/asia
|
||||||
+++ timezone-2014i/asia
|
+++ timezone-2015d/asia
|
||||||
@@ -520,6 +520,10 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:
|
@@ -516,6 +516,10 @@ Rule PRC 1987 1991 - Apr Sun>=10 0:00 1:
|
||||||
Zone Asia/Shanghai 8:05:43 - LMT 1901
|
Zone Asia/Shanghai 8:05:43 - LMT 1901
|
||||||
8:00 Shang C%sT 1949
|
8:00 Shang C%sT 1949
|
||||||
8:00 PRC C%sT
|
8:00 PRC C%sT
|
||||||
@ -13,11 +13,11 @@ Index: timezone-2014i/asia
|
|||||||
# Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi
|
# Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi
|
||||||
# / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.)
|
# / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.)
|
||||||
Zone Asia/Urumqi 5:50:20 - LMT 1928
|
Zone Asia/Urumqi 5:50:20 - LMT 1928
|
||||||
Index: timezone-2014i/backward
|
Index: timezone-2015d/backward
|
||||||
===================================================================
|
===================================================================
|
||||||
--- timezone-2014i.orig/backward
|
--- timezone-2015d.orig/backward
|
||||||
+++ timezone-2014i/backward
|
+++ timezone-2015d/backward
|
||||||
@@ -92,7 +92,7 @@ Link America/Mexico_City Mexico/General
|
@@ -93,7 +93,7 @@ Link America/Mexico_City Mexico/General
|
||||||
Link Pacific/Auckland NZ
|
Link Pacific/Auckland NZ
|
||||||
Link Pacific/Chatham NZ-CHAT
|
Link Pacific/Chatham NZ-CHAT
|
||||||
Link America/Denver Navajo
|
Link America/Denver Navajo
|
||||||
@ -26,10 +26,10 @@ Index: timezone-2014i/backward
|
|||||||
Link Pacific/Pohnpei Pacific/Ponape
|
Link Pacific/Pohnpei Pacific/Ponape
|
||||||
Link Pacific/Pago_Pago Pacific/Samoa
|
Link Pacific/Pago_Pago Pacific/Samoa
|
||||||
Link Pacific/Chuuk Pacific/Truk
|
Link Pacific/Chuuk Pacific/Truk
|
||||||
Index: timezone-2014i/zone.tab
|
Index: timezone-2015d/zone.tab
|
||||||
===================================================================
|
===================================================================
|
||||||
--- timezone-2014i.orig/zone.tab
|
--- timezone-2015d.orig/zone.tab
|
||||||
+++ timezone-2014i/zone.tab
|
+++ timezone-2015d/zone.tab
|
||||||
@@ -143,6 +143,7 @@ CK -2114-15946 Pacific/Rarotonga
|
@@ -143,6 +143,7 @@ CK -2114-15946 Pacific/Rarotonga
|
||||||
CL -3327-07040 America/Santiago most locations
|
CL -3327-07040 America/Santiago most locations
|
||||||
CL -2709-10926 Pacific/Easter Easter Island
|
CL -2709-10926 Pacific/Easter Easter Island
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:860fac5f5f57f7a2dfc1ba682dbd1f5c0f0b597f761571277b6ed6561e22365a
|
|
||||||
size 294353
|
|
@ -1,17 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Version: GnuPG v1
|
|
||||||
|
|
||||||
iQIcBAABAgAGBQJVKUS9AAoJEO2X6Q5iqn407KQP/31ERg5rduXfmPsw/8tIrcrk
|
|
||||||
U2Qc/7LysOZr5ncs2YAMI/bVIqZnrH5EZVj4Rg53Ke8S/4PLDGkPnsOlV8Vw16lw
|
|
||||||
7mW4BbzMu8LtAoeE9U3/8MGaZSn8gOi4o6XN28Y4gz6B1jcSm0JprX7hUAOp77DR
|
|
||||||
IXKRPXoZyGHH30O8HxdhofKSOVpOONw72IbtkfuR24m4YSYFyAWv3bx8C94Y1Aim
|
|
||||||
asKOx96vvk3PMO4yy1dPoJdNO/YN1KKSmDprJCNkCB8GXC21GWCFJhLn7KdXwp4+
|
|
||||||
b1aDSDO52U5KsxDZQ7pW4cAJyDpIBJAASTm24JAMubixGKlnBTzBann7WjptaoIh
|
|
||||||
I0jck3Raef6xo9AiH7tmvPgDwiVZFrT1Bu+CszuULA6J/FFQtnsZz3S806jabRQe
|
|
||||||
HKy8O8wQK+mKG8pRy9LBZju5w2KgSRWdWvYmkmFQRu9D40DUKgN/hWMjjSPYOr6b
|
|
||||||
yigvz33Tyw87G/O+ZV21B9k+OM55FEhI+Tv1g2r3Sn6PZ3Q8IXbD8CAt1lSQevUj
|
|
||||||
K/vyDDQrTVQWFvG8+swrT1cVkbL8n5B+FdELU22eTGf6doDAt4nLzSqNquxnT8yG
|
|
||||||
0kECc1xTNIwwo3Weh3O3jPOUMxMZZ0+hQKP7OnwyBPVE5b705Io6MA0t4oibAZci
|
|
||||||
SX0rJXaaDRgULk7yyy55
|
|
||||||
=6G/t
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
tzdata2015d.tar.gz
Normal file
3
tzdata2015d.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:8b9f5008277f09e251e97dba7813f56168d691115bda90ade4638d72f296d531
|
||||||
|
size 296131
|
17
tzdata2015d.tar.gz.asc
Normal file
17
tzdata2015d.tar.gz.asc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v1
|
||||||
|
|
||||||
|
iQIcBAABAgAGBQJVOl3RAAoJEO2X6Q5iqn401YgP/igT318zjaLcBATJ2pQ7aMj1
|
||||||
|
WrtkZ+m/Urt5pkgtNxtx608eXKTZbs5g9YeJHFS3eN74y8JIrTfNaBiPWNeG0x8m
|
||||||
|
nc83Jvs++B9A8JFjAAjhZVl2TbGTpD5r9FGqQXmIX4qKsB5W1b+OGW3OtXM9vNGK
|
||||||
|
ZVC6TEp/wEuqt3dmjhirLihmdj1W/+2aowlm7PAPhJY9R3QdYJ2dRh8WRvGRSxtc
|
||||||
|
EIorFKgfNOWJJnKCk+YPeK4xPxivNw43nYAy6UnavJYPjTpHxaAx47533R7nm6Cy
|
||||||
|
b2JMdpQSRv4TZrnfz0OzXV/qhJskZNxgf6LR0/3uMSzX1VBO1Wywpmg2wIuij5qo
|
||||||
|
POG8dJr+TsVL3O539DTQ1nYqV0kCzfWirTML9ipF/jwEeG/EFBjkNM6g5eyJLrZp
|
||||||
|
7Ej4dTbiqmde/Ajh5ECW4AdNQqTaR35BBLtj2PR415dBGhiFMxR30TyX16rbGVWX
|
||||||
|
Mb5abkkS1v4NxLtvi5mtJJl5JNLrYEW/nOqwrIeEEBY2BvvZdeJVqHlXWeBoY9P+
|
||||||
|
vSQoN9/gCFSQd5olmVVnuP+mqwzyipG8UUsyr7IAyeRc4bRPRyHkC8FdXy+lmrfP
|
||||||
|
HJaPVcPDm6ZFW7BAFw/fqJC6DJj7I48qzKnHb7O9qtkzXjL+wW8kR6SidxANcMa/
|
||||||
|
6lJlIHLlXKjj57lVsQHt
|
||||||
|
=zE0V
|
||||||
|
-----END PGP SIGNATURE-----
|
Loading…
Reference in New Issue
Block a user