From c4dbf5d89df4828137aeb5fc3bc8d9d0bf28a471 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sun, 11 Nov 2012 13:28:33 +0100 Subject: Send EOL+EOF at end of socket transmission. --- debian/changelog | 7 +++++++ src/pam-x2go-children.c | 5 +++-- 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 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 -- cgit v1.2.3