aboutsummaryrefslogtreecommitdiff
path: root/src/freerdp-auth-check.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2012-08-31 13:39:06 +0000
committerTarmac <>2012-08-31 13:39:06 +0000
commitc5207337b01bc9f0836ee0a82d611549b963245c (patch)
treef5c0dc7ad6a754dab5185dce89eaa987a2cfa800 /src/freerdp-auth-check.c
parentf80b38d61ce1b138c119a57cda951ea8b6c66cc1 (diff)
parent50c56f5a1e20d5d08bff7a1a8b1a824e42b40c5e (diff)
downloadlibpam-x2go-c5207337b01bc9f0836ee0a82d611549b963245c.tar.gz
libpam-x2go-c5207337b01bc9f0836ee0a82d611549b963245c.tar.bz2
libpam-x2go-c5207337b01bc9f0836ee0a82d611549b963245c.zip
Resolving concerns of the security team. Fixes: https://bugs.launchpad.net/bugs/1039634. Approved by Albert Astals Cid, jenkins.
Diffstat (limited to 'src/freerdp-auth-check.c')
-rw-r--r--src/freerdp-auth-check.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/freerdp-auth-check.c b/src/freerdp-auth-check.c
index d50833b..e5e9d13 100644
--- a/src/freerdp-auth-check.c
+++ b/src/freerdp-auth-check.c
@@ -60,6 +60,10 @@ main (int argc, char * argv[])
return -1;
}
+ if (mlock(password, sizeof(password)) != 0) {
+ return -1;
+ }
+
freerdp_channels_global_init();
freerdp * instance = freerdp_new();
@@ -77,7 +81,6 @@ main (int argc, char * argv[])
instance->settings->username = argv[2];
instance->settings->domain = argv[3];
instance->settings->password = password;
- instance->settings->ignore_certificate = true;
char * colonloc = strstr(argv[1], ":");
if (colonloc != NULL) {
@@ -88,10 +91,14 @@ main (int argc, char * argv[])
instance->settings->port = strtoul(colonloc, NULL, 10);
}
+ int retval = -1;
if (freerdp_connect(instance)) {
freerdp_disconnect(instance);
- return 0;
- } else {
- return -1;
+ retval = 0;
}
+
+ memset(password, 0, sizeof(password));
+ munlock(password, sizeof(password));
+
+ return retval;
}