From a4ea6b98f3c853d70bc08e01ce098c287c2ffd4c Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 10 Apr 2007 21:10:55 -0400 Subject: [PATCH] Fix debugfs's date parser so that it accepts integer values Signed-off-by: "Theodore Ts'o" --- debugfs/ChangeLog | 5 +++++ debugfs/util.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/debugfs/ChangeLog b/debugfs/ChangeLog index 6a4de62..d7fbed9 100644 --- a/debugfs/ChangeLog +++ b/debugfs/ChangeLog @@ -1,3 +1,8 @@ +2007-04-10 Theodore Tso + + * util.c (string_to_time): Fix bug in date parser so that integer + time values can be used. + 2007-04-02 Theodore Tso * dump.c (do_rdump): Use O_LARGEFILE when creating files. Add a diff --git a/debugfs/util.c b/debugfs/util.c index 714d799..13eb7d9 100644 --- a/debugfs/util.c +++ b/debugfs/util.c @@ -208,7 +208,7 @@ char *time_to_string(__u32 cl) extern time_t string_to_time(const char *arg) { struct tm ts; - unsigned long ret; + time_t ret; char *tmp; if (strcmp(arg, "now") == 0) { @@ -227,14 +227,14 @@ extern time_t string_to_time(const char *arg) ts.tm_min > 59 || ts.tm_sec > 61) ts.tm_mday = 0; #endif - if (ts.tm_mday == 0) { + ret = mktime(&ts); + if (ts.tm_mday == 0 || ret == ((time_t) -1)) { /* Try it as an integer... */ - ret = strtoul(arg, &tmp, 0); if (*tmp) return ((time_t) -1); } - return mktime(&ts); + return ret; } /* -- 1.8.3.1