Blob Blame History Raw
--- authd-1.4.3/authd.c.jiffies64	2007-03-27 16:45:50.000000000 -0400
+++ authd-1.4.3/authd.c	2007-03-27 17:47:33.000000000 -0400
@@ -347,6 +347,21 @@ static void create_opt(int argc, char *a
 
 static const char *const DELIM = ",: \t\r\n\v\f";
 
+static unsigned long long get_tok_ullong(char *s, unsigned base) {
+    unsigned long ull = ULLONG_MAX;
+
+    assert(base <= 36);
+    if ((s = strtok(s, DELIM)) != NULL) {
+        char *endptr;
+
+        ull = strtoull(s, &endptr, (int) base);
+        if (is_bad_strto(s, endptr))
+            errno = EINVAL;
+    }
+    else errno = EINVAL;
+    return ull;
+}
+
 static unsigned long get_tok_uint(char *s, unsigned base) {
     unsigned long ul = ULONG_MAX;
 
@@ -654,7 +669,7 @@ static bool get_info(reply_t *out, reque
         (void) get_tok_uint(NULL, 16);            // tx_queue
         (void) get_tok_uint(NULL, 16);            // rx_queue
         (void) get_tok_uint(NULL, 16);            // tr (boolean)
-        (void) get_tok_uint(NULL, 16);            // tm->when (unit: jiffies)
+        (void) get_tok_ullong(NULL, 16);            // tm->when (unit: jiffies)
         strtok(NULL, DELIM);                      // retrnsmt
         uid = get_tok_uint(NULL, 10);             // uid (base 10 uint)
         strtok(NULL, DELIM);                      // timeout