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 <Unknown>2012-08-31 13:39:06 +0000
commit2fc0b3787c96832d82ccce9876b97c8bcbf4c6d6 (patch)
treef5c0dc7ad6a754dab5185dce89eaa987a2cfa800 /src/freerdp-auth-check.c
parent0f49e35e32c1ea1ffdd960e28ef917bfa117eced (diff)
parentdbef2c50ce25e1fbb6a517fa1103d953c5c50dd8 (diff)
downloadlibpam-freerdp2-2fc0b3787c96832d82ccce9876b97c8bcbf4c6d6.tar.gz
libpam-freerdp2-2fc0b3787c96832d82ccce9876b97c8bcbf4c6d6.tar.bz2
libpam-freerdp2-2fc0b3787c96832d82ccce9876b97c8bcbf4c6d6.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;
}