Make sure we close all open files.
This commit is contained in:
@@ -69,10 +69,11 @@ proc_file_to_buffer (char *buffer, const char *fmt, pid_t pid)
|
|||||||
if (fd < 0) return -1;
|
if (fd < 0) return -1;
|
||||||
|
|
||||||
len = read (fd, buffer, BUFSIZ-1);
|
len = read (fd, buffer, BUFSIZ-1);
|
||||||
if (len < 0) return -1;
|
|
||||||
|
|
||||||
close (fd);
|
close (fd);
|
||||||
|
|
||||||
|
if (len < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
buffer [len] = '\0';
|
buffer [len] = '\0';
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -290,7 +290,10 @@ glibtop_get_netload_s (glibtop *server, glibtop_netload *buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Should never happen. */
|
/* Should never happen. */
|
||||||
if (fields < 2) return;
|
if (fields < 2) {
|
||||||
|
fclose (f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
fields--;
|
fields--;
|
||||||
|
|
||||||
while (fgets (buffer, BUFSIZ-1, f)) {
|
while (fgets (buffer, BUFSIZ-1, f)) {
|
||||||
|
@@ -60,6 +60,8 @@ glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
|
|||||||
retval = glibtop_malloc_r (server, max_len+1);
|
retval = glibtop_malloc_r (server, max_len+1);
|
||||||
|
|
||||||
len = read (cmdline, retval, max_len);
|
len = read (cmdline, retval, max_len);
|
||||||
|
close (cmdline);
|
||||||
|
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
glibtop_free_r (server, retval);
|
glibtop_free_r (server, retval);
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -76,6 +78,7 @@ glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
|
|||||||
while (1) {
|
while (1) {
|
||||||
len = read (cmdline, buffer, BUFSIZ-1);
|
len = read (cmdline, buffer, BUFSIZ-1);
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
|
close (cmdline);
|
||||||
glibtop_free_r (server, retval);
|
glibtop_free_r (server, retval);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user