78 lines
2.1 KiB
Diff
78 lines
2.1 KiB
Diff
|
|
From 894fd6a7ba225936f7711ef9a9413bba65f83b92 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Wei Xing <skyxwwalker@gmail.com>
|
||
|
|
Date: Thu, 2 Mar 2023 21:07:10 +0800
|
||
|
|
Subject: [PATCH] Add fclose operation to fix file pointer not closed after use
|
||
|
|
Signed-off-by: Wei Xing <skyxwwalker@gmail.com>
|
||
|
|
|
||
|
|
---
|
||
|
|
pppd/plugins/radius/clientid.c | 2 ++
|
||
|
|
pppd/plugins/radius/config.c | 6 ++++++
|
||
|
|
2 files changed, 8 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/pppd/plugins/radius/clientid.c b/pppd/plugins/radius/clientid.c
|
||
|
|
index b1bbc47..eea5165 100644
|
||
|
|
--- a/pppd/plugins/radius/clientid.c
|
||
|
|
+++ b/pppd/plugins/radius/clientid.c
|
||
|
|
@@ -68,6 +68,7 @@ int rc_read_mapfile(char *filename)
|
||
|
|
|
||
|
|
if ((p = (struct map2id_s *)malloc(sizeof(*p))) == NULL) {
|
||
|
|
novm("rc_read_mapfile");
|
||
|
|
+ fclose(mapfd);
|
||
|
|
return (-1);
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -79,6 +80,7 @@ int rc_read_mapfile(char *filename)
|
||
|
|
} else {
|
||
|
|
|
||
|
|
error("rc_read_mapfile: malformed line in %s, line %d", filename, lnr);
|
||
|
|
+ fclose(mapfd);
|
||
|
|
return (-1);
|
||
|
|
|
||
|
|
}
|
||
|
|
diff --git a/pppd/plugins/radius/config.c b/pppd/plugins/radius/config.c
|
||
|
|
index 47c172c..39744fc 100644
|
||
|
|
--- a/pppd/plugins/radius/config.c
|
||
|
|
+++ b/pppd/plugins/radius/config.c
|
||
|
|
@@ -212,6 +212,7 @@ int rc_read_config(char *filename)
|
||
|
|
|
||
|
|
if ((pos = strcspn(p, "\t ")) == 0) {
|
||
|
|
error("%s: line %d: bogus format: %s", filename, line, p);
|
||
|
|
+ fclose(configfd);
|
||
|
|
return (-1);
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -224,6 +225,7 @@ int rc_read_config(char *filename)
|
||
|
|
|
||
|
|
if (option->status != ST_UNDEF) {
|
||
|
|
error("%s: line %d: duplicate option line: %s", filename, line, p);
|
||
|
|
+ fclose(configfd);
|
||
|
|
return (-1);
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -234,18 +236,22 @@ int rc_read_config(char *filename)
|
||
|
|
switch (option->type) {
|
||
|
|
case OT_STR:
|
||
|
|
if (set_option_str(filename, line, option, p) < 0)
|
||
|
|
+ fclose(configfd);
|
||
|
|
return (-1);
|
||
|
|
break;
|
||
|
|
case OT_INT:
|
||
|
|
if (set_option_int(filename, line, option, p) < 0)
|
||
|
|
+ fclose(configfd);
|
||
|
|
return (-1);
|
||
|
|
break;
|
||
|
|
case OT_SRV:
|
||
|
|
if (set_option_srv(filename, line, option, p) < 0)
|
||
|
|
+ fclose(configfd);
|
||
|
|
return (-1);
|
||
|
|
break;
|
||
|
|
case OT_AUO:
|
||
|
|
if (set_option_auo(filename, line, option, p) < 0)
|
||
|
|
+ fclose(configfd);
|
||
|
|
return (-1);
|
||
|
|
break;
|
||
|
|
default:
|
||
|
|
--
|
||
|
|
2.33.0
|
||
|
|
|