]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Fix debugfs's date parser so that it accepts integer values
authorTheodore Ts'o <tytso@mit.edu>
Wed, 11 Apr 2007 01:10:55 +0000 (21:10 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 11 Apr 2007 01:10:55 +0000 (21:10 -0400)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
debugfs/ChangeLog
debugfs/util.c

index 6a4de62c37907116d795deebbda7ad61f9bfd329..d7fbed97c12ecf27c489336cffd669c3c878a0a4 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-10  Theodore Tso  <tytso@mit.edu>
+
+       * util.c (string_to_time): Fix bug in date parser so that integer
+               time values can be used.
+
 2007-04-02  Theodore Tso  <tytso@mit.edu>
 
        * dump.c (do_rdump): Use O_LARGEFILE when creating files.  Add a
index 714d799b0680c7eb7594b99a6f5b98e7b0354df5..13eb7d998c18d9c14b234616352b171062b9c70f 100644 (file)
@@ -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;
 }
 
 /*