Thanks for the report! I applied with a slightly different fix. The fix will go into 1.22.2 too.
On Mon, Jan 20, 2014 at 9:53 PM, Ron Yorston <[email protected]> wrote: > Since commit 688a7e3f dates of the form [[[MM]DD]hh]mm have the > wrong year: > > $ ./busybox date -d 10101010 > Fri Oct 10 10:10:00 GMT 10102910 > > Signed-off-by: Ron Yorston <[email protected]> > --- > libbb/time.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/libbb/time.c b/libbb/time.c > index ea2f72e..5aa5aeb 100644 > --- a/libbb/time.c > +++ b/libbb/time.c > @@ -12,6 +12,7 @@ void FAST_FUNC parse_datestr(const char *date_str, struct > tm *ptm) > { > char end = '\0'; > const char *last_colon = strrchr(date_str, ':'); > + unsigned year; > > if (last_colon != NULL) { > /* Parse input and assign appropriately to ptm */ > @@ -69,16 +70,16 @@ void FAST_FUNC parse_datestr(const char *date_str, struct > tm *ptm) > } > } else > /* yyyy-mm-dd HH */ > - if (sscanf(date_str, "%u-%u-%u %u%c", &ptm->tm_year, > + if (sscanf(date_str, "%u-%u-%u %u%c", &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, > + || sscanf(date_str, "%u-%u-%u%c", &year, > &ptm->tm_mon, &ptm->tm_mday, > &end) >= 3 > ) { > - ptm->tm_year -= 1900; /* Adjust years */ > + ptm->tm_year = year - 1900; /* Adjust years */ > ptm->tm_mon -= 1; /* Adjust month from 1-12 to 0-11 */ > } else > if (date_str[0] == '@') { > -- > 1.8.4.2 > > _______________________________________________ > busybox mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
