OSDN Git Service

blkid: fix blkid time diff bug
authorJeff Sharkey <jsharkey@android.com>
Wed, 16 Oct 2013 22:42:12 +0000 (15:42 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 25 Mar 2016 16:07:48 +0000 (12:07 -0400)
When calculating time diffs, use difftime() instead of risking
integer overflow.  Also build a "blkid" binary.

Addresses-Google-Bug: #11175082
Change-Id: I23521f45204574bb32f152926401c2cbad93175b

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/blkid/probe.c

index 77d0899..a486017 100644 (file)
@@ -1532,14 +1532,15 @@ blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev)
        unsigned char *buf;
        const char *type, *value;
        struct stat st;
-       time_t diff, now;
+       time_t now;
+       double diff;
        int idx;
 
        if (!dev)
                return NULL;
 
        now = time(0);
-       diff = now - dev->bid_time;
+       diff = difftime(now, dev->bid_time);
 
        if (stat(dev->bid_name, &st) < 0) {
                DBG(DEBUG_PROBE,