From 69a64e9b471ebb456f2807c1cc04652167da154a Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 13 Jul 2004 00:23:34 +0000 Subject: [BZ #263] 2004-07-12 Paul Eggert [BZ #263] * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Don't store outside the buffer if the read returns 0. __strtod_l can't set endp to NULL, so remove a test for that case. --- ChangeLog | 7 +++++++ sysdeps/unix/sysv/linux/getloadavg.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2d4b6886dd..79f63385ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-07-12 Paul Eggert + + [BZ #263] + * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Don't store + outside the buffer if the read returns 0. __strtod_l can't set + endp to NULL, so remove a test for that case. + 2004-07-12 Roland McGrath * manual/signal.texi (Interrupted Primitives): Make clear that diff --git a/sysdeps/unix/sysv/linux/getloadavg.c b/sysdeps/unix/sysv/linux/getloadavg.c index 6ef17fe0d0..6a521431ba 100644 --- a/sysdeps/unix/sysv/linux/getloadavg.c +++ b/sysdeps/unix/sysv/linux/getloadavg.c @@ -45,7 +45,7 @@ getloadavg (double loadavg[], int nelem) nread = read_not_cancel (fd, buf, sizeof buf - 1); close_not_cancel_no_status (fd); - if (nread < 0) + if (nread <= 0) return -1; buf[nread - 1] = '\0'; @@ -56,7 +56,7 @@ getloadavg (double loadavg[], int nelem) { char *endp; loadavg[i] = __strtod_l (p, &endp, &_nl_C_locobj); - if (endp == NULL || endp == p) + if (endp == p) /* This should not happen. The format of /proc/loadavg must have changed. Don't return with what we have, signal an error. */ -- cgit v1.2.1