summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYacine Belkadi2012-11-16 09:38:09 +0100
committerYacine Belkadi2012-11-29 16:55:07 +0100
commitf444f72c2c87a2a168a14781dd691ab3d382443e (patch)
tree5ca9f09f40c152d1db7312634e1dd14e134ddeaf
parent3cf9f48d5e0a4604aec1ddf799fe4832fdb7a200 (diff)
cleo/app/spidnetsnmp[eoc]: close file after use, closes #3473
libspid_config_read_line_repetitive() closes the file if it reaches EOF or if an error occurs. Otherwise, the idiom is to call libspid_config_read_line_repetitive(0, 0, 0, 0, 0, 0, 0, &user_data) to close the file. This call was missing in clearEoCCurrentAlarms(). As a result, the snmpd agent periodically opened /var/run/info/alarm.info without closing it. Thus leaking ~4kB each time. Close the file after we're done reading it. Do it also in clearEoCSCCNCurrentAlarms().
-rw-r--r--cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-alarm-mib/eocAlarmsAndTraps.c3
-rw-r--r--cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-sccn-mib/sccn-alarm-mib/eocSCCNAlarmsAndTraps.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-alarm-mib/eocAlarmsAndTraps.c b/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-alarm-mib/eocAlarmsAndTraps.c
index 653123c744..fb9475da12 100644
--- a/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-alarm-mib/eocAlarmsAndTraps.c
+++ b/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-alarm-mib/eocAlarmsAndTraps.c
@@ -400,6 +400,9 @@ clearEoCCurrentAlarms ()
}
strcpy (oid_str[count], buffer);
}
+ /* Close the file. */
+ libspid_config_read_line_repetitive (0, 0, 0, 0, 0, 0, 0, &user_data);
+
for (i = 0; i < count; i++)
{
if ((!strncmp (oid_str[i], EOCCNUOID, strlen (EOCCNUOID))) ||
diff --git a/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-sccn-mib/sccn-alarm-mib/eocSCCNAlarmsAndTraps.c b/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-sccn-mib/sccn-alarm-mib/eocSCCNAlarmsAndTraps.c
index 4b5d5a3946..cd3327ab06 100644
--- a/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-sccn-mib/sccn-alarm-mib/eocSCCNAlarmsAndTraps.c
+++ b/cleopatre/application/spidnetsnmp/agent/mibgroup/mstar-sccn-mib/sccn-alarm-mib/eocSCCNAlarmsAndTraps.c
@@ -401,6 +401,9 @@ clearEoCSCCNCurrentAlarms ()
strcpy (oid_str[count], buffer);
}
+ /* Close the file. */
+ libspid_config_read_line_repetitive (0, 0, 0, 0, 0, 0, 0, &user_data);
+
for (i = 0; i < count; i++)
{
if (!strncmp (oid_str[i], EOCSCCNOID, strlen (EOCSCCNOID)))