aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog7
-rw-r--r--src/pam-x2go-children.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index 6ce02af..ac7fbb6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libpam-x2go (0.0.0.2-0~x2go1) UNRELEASED; urgency=low
+
+ * New upstream version (0.0.0.2):
+ - Send EOL+EOF at end of socket transmission.
+
+ -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Sun, 11 Nov 2012 13:27:51 +0100
+
libpam-x2go (0.0.0.1-0~x2go1) unstable; urgency=low
* Initial upstream release. Forked from libpam-freerdp (by Ted Gould
diff --git a/src/pam-x2go-children.c b/src/pam-x2go-children.c
index e161ca3..67d3af1 100644
--- a/src/pam-x2go-children.c
+++ b/src/pam-x2go-children.c
@@ -65,7 +65,7 @@ pam_sm_authenticate_helper (int *stdinpipe, const char* username, const char* rh
}
if (setgid(pwdent->pw_gid) < 0 || setuid(pwdent->pw_uid) < 0 ||
- setegid(pwdent->pw_gid) < 0 || seteuid(pwdent->pw_uid) < 0) {
+ setegid(pwdent->pw_gid) < 0 || seteuid(pwdent->pw_uid) < 0) {
_exit(EXIT_FAILURE);
}
@@ -138,6 +138,7 @@ session_socket_handler (struct passwd * pwdent, int readypipe, const char * ruse
buffer_len += strlen(rhost) + 1; /* Add one for the space */
buffer_len += strlen(rsession) + 1; /* Add one for the space */
buffer_len += strlen(password) + 1; /* Add one for the NULL */
+ buffer_len += 2 /* one for EOL, another for EOF */
if (buffer_len < 5) {
/* Don't need to clean up yet */
@@ -157,7 +158,7 @@ session_socket_handler (struct passwd * pwdent, int readypipe, const char * ruse
goto cleanup;
}
- buffer_fill = snprintf(buffer, buffer_len, "%s %s %s %s", ruser, rhost, rsession, password);
+ buffer_fill = snprintf(buffer, buffer_len, "%s %s %s %s%s%s", ruser, rhost, rsession, password, EOL, EOF);
if (buffer_fill > buffer_len) {
/* This really shouldn't happen, but if for some reason we have an
difference between they way that the lengths are calculated we want