From: Arkadiusz Miśkiewicz Date: Thu, 27 Feb 2020 09:28:31 +0000 (+0100) Subject: - rel 2; fix time parsing https://savannah.nongnu.org/bugs/?57887 X-Git-Tag: auto/th/SysVinit-2.96-2 X-Git-Url: https://git.pld-linux.org/?p=packages%2FSysVinit.git;a=commitdiff_plain;h=2b6bdadcbd766f8c29d411a1c99627959dd8b809 - rel 2; fix time parsing https://savannah.nongnu.org/bugs/?57887 --- diff --git a/SysVinit.spec b/SysVinit.spec index 5fb62b7..d5551fc 100644 --- a/SysVinit.spec +++ b/SysVinit.spec @@ -13,7 +13,7 @@ Summary(tr.UTF-8): System V başlatma programı Summary(uk.UTF-8): Програми, що керують базовими системними процесами Name: SysVinit Version: 2.96 -Release: 1 +Release: 2 License: GPL v2+ Group: Base Source0: http://download.savannah.gnu.org/releases/sysvinit/sysvinit-%{version}.tar.xz @@ -25,7 +25,7 @@ Source3: crypttab.5 Patch0: sysvinit-paths.patch Patch1: sysvinit-bequiet.patch Patch2: sysvinit-wtmp.patch - +Patch3: time-parsing.patch Patch4: sysvinit-halt.patch Patch5: sysvinit-autofsck.patch @@ -130,7 +130,7 @@ Ten pakiet zawiera różne narzędzia do zarządzania procesami. %patch0 -p1 %patch1 -p1 %patch2 -p1 - +%patch3 -p1 %patch4 -p1 %patch5 -p1 diff --git a/time-parsing.patch b/time-parsing.patch new file mode 100644 index 0000000..1871646 --- /dev/null +++ b/time-parsing.patch @@ -0,0 +1,26 @@ +--- sysvinit-2.96/src/shutdown.c.org 2020-02-24 14:20:54.265362805 +0100 ++++ sysvinit-2.96/src/shutdown.c 2020-02-27 10:24:16.865892277 +0100 +@@ -778,16 +778,18 @@ int main(int argc, char **argv) + if (!strcmp(when, "now")) strcpy(when, "0"); + + sp = when; +- if (when[0] == '+') sp++; +- /* Decode shutdown time. */ ++ /* Validate time argument. */ + for ( ; *sp; sp++) { +- if (*sp != ':' && (*sp < '0' || *sp > '9')) ++ if (*sp != '+' && *sp != ':' && (*sp < '0' || *sp > '9')) + usage(); + } ++ sp = when; ++ /* Decode shutdown time. */ ++ if (when[0] == '+') sp++; + if (strchr(when, ':') == NULL) { + /* Time in minutes. */ +- wt = atoi(when); +- if (wt == 0 && when[0] != '0') usage(); ++ wt = atoi(sp); ++ if (wt == 0 && sp[0] != '0') usage(); + } else { + /* Time in hh:mm format. */ + if (sscanf(when, "%d:%2d", &hours, &mins) != 2) usage();