From: Tobias Brunner Date: Wed, 6 Feb 2013 15:35:44 +0000 (+0100) Subject: Don't use a time_t variable with fscanf when parsing uptime X-Git-Tag: 5.0.3dr1~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98063d8187d6894f4698d689e7c5a3affbcd1622;p=thirdparty%2Fstrongswan.git Don't use a time_t variable with fscanf when parsing uptime Because "%u" is used as format string in the fscanf call that parses the uptime and because the length of time_t varies on different platforms and architectures the value was not written properly if time_t was longer than an unsigned int and depending on how the target variable was aligned on the stack. Since there is no conversion specifier to properly parse a time_t value we use the appropriate integer type instead. --- diff --git a/src/libimcv/os_info/os_info.c b/src/libimcv/os_info/os_info.c index 13374c8762..2c49cb01df 100644 --- a/src/libimcv/os_info/os_info.c +++ b/src/libimcv/os_info/os_info.c @@ -156,7 +156,7 @@ METHOD(os_info_t, get_uptime, time_t, { const char proc_uptime[] = "/proc/uptime"; FILE *file; - time_t uptime; + u_int uptime; file = fopen(proc_uptime, "r"); if (!file)