(print_uptime): Use `buf' only if fgets succeeds.
authorJim Meyering <jim@meyering.net>
Sat, 18 Mar 2000 16:54:18 +0000 (16:54 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 18 Mar 2000 16:54:18 +0000 (16:54 +0000)
src/uptime.c

index 5a39ba6490fdb260cc7e2e6ca374ff553fc7a1a2..084831fa7abfd9ecdd951b582a85303ee9404674 100644 (file)
@@ -63,14 +63,16 @@ print_uptime (int n, const STRUCT_UTMP *this)
     {
       char buf[BUFSIZ];
       int res;
-      fgets (buf, BUFSIZ, fp);
-
-      /* The following sscanf must use the C locale.  */
-      setlocale (LC_NUMERIC, "C");
-      res = sscanf (buf, "%lf", &upsecs);
-      setlocale (LC_NUMERIC, "");
-      if (res == 1)
-       uptime = (time_t) upsecs;
+      char *b = fgets (buf, BUFSIZ, fp);
+      if (b == buf)
+       {
+         /* The following sscanf must use the C locale.  */
+         setlocale (LC_NUMERIC, "C");
+         res = sscanf (buf, "%lf", &upsecs);
+         setlocale (LC_NUMERIC, "");
+         if (res == 1)
+           uptime = (time_t) upsecs;
+       }
 
       fclose (fp);
     }