From f4f553efa787e1f8f25bb2176f5e6c4c3aa659a9 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 25 May 2014 17:42:09 +0000 Subject: busybox: update to 1.22.1 Signed-off-by: Felix Fietkau SVN-Revision: 40852 --- .../busybox/patches/003-upstream_date_fix.patch | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 package/utils/busybox/patches/003-upstream_date_fix.patch (limited to 'package/utils/busybox/patches/003-upstream_date_fix.patch') diff --git a/package/utils/busybox/patches/003-upstream_date_fix.patch b/package/utils/busybox/patches/003-upstream_date_fix.patch new file mode 100644 index 0000000..5b389c4 --- /dev/null +++ b/package/utils/busybox/patches/003-upstream_date_fix.patch @@ -0,0 +1,30 @@ +--- a/libbb/time.c ++++ b/libbb/time.c +@@ -68,15 +68,23 @@ void FAST_FUNC parse_datestr(const char + /* else end != NUL and we error out */ + } + } else +- /* yyyy-mm-dd HH */ +- if (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year, ++ if (strchr(date_str, '-') ++ /* Why strchr('-') check? ++ * sscanf below will trash ptm->tm_year, this breaks ++ * if parse_str is "10101010" (iow, "MMddhhmm" form) ++ * because we destroy year. Do these sscanf ++ * only if we saw a dash in parse_str. ++ */ ++ /* yyyy-mm-dd HH */ ++ && (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year, + &ptm->tm_mon, &ptm->tm_mday, + &ptm->tm_hour, + &end) >= 4 +- /* yyyy-mm-dd */ +- || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year, ++ /* yyyy-mm-dd */ ++ || sscanf(date_str, "%u-%u-%u%c", &ptm->tm_year, + &ptm->tm_mon, &ptm->tm_mday, + &end) >= 3 ++ ) + ) { + ptm->tm_year -= 1900; /* Adjust years */ + ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ -- cgit v1.1