summaryrefslogtreecommitdiffstats
path: root/xrdp
diff options
context:
space:
mode:
authorKoichiro IWAO <meta@vmeta.jp>2018-01-13 22:10:48 +0900
committerKoichiro IWAO <meta@vmeta.jp>2018-01-17 09:38:28 +0900
commitb17c45d86fc2f22fcff8cb9adf31080738edd37a (patch)
treec7f93f89855a67a7d45706c9655626bcef5efe7a /xrdp
parent5daa09171e1e6e65a1a3ab969775fdf8affffc37 (diff)
downloadxrdp-proprietary-b17c45d86fc2f22fcff8cb9adf31080738edd37a.tar.gz
xrdp-proprietary-b17c45d86fc2f22fcff8cb9adf31080738edd37a.zip
fix potential fd leak
In most cases, checking fd > 0 is not valid. open(2) returns -1 on error, 0 on stdin, 1 on stdout, 2 on stderr, >2 . The border should be between -1 and 0. Additionally, between 2 and 3. Pointed out by: #919
Diffstat (limited to 'xrdp')
-rw-r--r--xrdp/xrdp_mm.c6
-rw-r--r--xrdp/xrdp_wm.c2
2 files changed, 3 insertions, 5 deletions
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
index 4754ccaa..4c716d46 100644
--- a/xrdp/xrdp_mm.c
+++ b/xrdp/xrdp_mm.c
@@ -1310,7 +1310,7 @@ xrdp_mm_get_sesman_port(char *port, int port_bytes)
g_snprintf(cfg_file, 255, "%s/sesman.ini", XRDP_CFG_PATH);
fd = g_file_open(cfg_file);
- if (fd > 0)
+ if (fd >= 0)
{
names = list_create();
names->auto_free = 1;
@@ -1343,10 +1343,8 @@ xrdp_mm_get_sesman_port(char *port, int port_bytes)
list_delete(names);
list_delete(values);
- }
-
- if (fd != -1)
g_file_close(fd);
+ }
return 0;
}
diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c
index 3d16fe63..8b26718d 100644
--- a/xrdp/xrdp_wm.c
+++ b/xrdp/xrdp_wm.c
@@ -405,7 +405,7 @@ xrdp_wm_load_static_colors_plus(struct xrdp_wm *self, char *autorun_name)
g_snprintf(cfg_file, 255, "%s/xrdp.ini", XRDP_CFG_PATH);
fd = g_file_open(cfg_file);
- if (fd > 0)
+ if (fd >= 0)
{
names = list_create();
names->auto_free = 1;