Fix possible file descriptor leak on linux (bug 14401)
This commit is contained in:
@@ -71,8 +71,13 @@ get_cpu_usage (gushort *cpu_count, gfloat *cpu_user, gfloat *cpu_system)
|
|||||||
static gulong jiffies_user_old = 0, jiffies_system_old = 0, jiffies_total_old = 0;
|
static gulong jiffies_user_old = 0, jiffies_system_old = 0, jiffies_total_old = 0;
|
||||||
gulong user = 0, user_nice = 0, system = 0, idle = 0;
|
gulong user = 0, user_nice = 0, system = 0, idle = 0;
|
||||||
|
|
||||||
if ((file = fopen (filename, "r")) == NULL || fgets (buffer, sizeof(buffer), file) == NULL)
|
if ((file = fopen (filename, "r")) == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
if (fgets (buffer, sizeof(buffer), file) == NULL)
|
||||||
|
{
|
||||||
|
fclose (file);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
sscanf (buffer, "cpu\t%lu %lu %lu %lu", &user, &user_nice, &system, &idle);
|
sscanf (buffer, "cpu\t%lu %lu %lu %lu", &user, &user_nice, &system, &idle);
|
||||||
|
|
||||||
@@ -195,8 +200,13 @@ get_task_details (GPid pid, Task *task)
|
|||||||
gchar buffer[1024];
|
gchar buffer[1024];
|
||||||
|
|
||||||
snprintf (filename, sizeof(filename), "/proc/%d/stat", pid);
|
snprintf (filename, sizeof(filename), "/proc/%d/stat", pid);
|
||||||
if ((file = fopen (filename, "r")) == NULL || fgets (buffer, sizeof(buffer), file) == NULL)
|
if ((file = fopen (filename, "r")) == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
if (fgets (buffer, sizeof(buffer), file) == NULL)
|
||||||
|
{
|
||||||
|
fclose (file);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
fclose (file);
|
fclose (file);
|
||||||
|
|
||||||
bzero(task, sizeof(Task));
|
bzero(task, sizeof(Task));
|
||||||
|
|||||||
Reference in New Issue
Block a user