dovecot-2.2: lib-master: Removed fixed length limit for session-id.

dovecot at dovecot.org dovecot at dovecot.org
Thu Oct 30 01:34:50 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/fbc969e1543b
changeset: 18043:fbc969e1543b
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Oct 29 18:32:36 2014 -0700
description:
lib-master: Removed fixed length limit for session-id.

diffstat:

 src/lib-master/master-login.c |  7 ++-----
 src/lib-master/master-login.h |  4 +---
 2 files changed, 3 insertions(+), 8 deletions(-)

diffs (51 lines):

diff -r f21d7614ac0d -r fbc969e1543b src/lib-master/master-login.c
--- a/src/lib-master/master-login.c	Wed Oct 29 11:46:50 2014 -0700
+++ b/src/lib-master/master-login.c	Wed Oct 29 18:32:36 2014 -0700
@@ -192,6 +192,7 @@
 		client->conn->refcount--;
 	}
 	master_login_conn_unref(&client->conn);
+	i_free(client->session_id);
 	i_free(client);
 }
 
@@ -419,10 +420,6 @@
 			break;
 		}
 	}
-	if (session_len >= sizeof(client->session_id)) {
-		i_error("login client: Session ID too long");
-		session_len = 0;
-	}
 
 	/* @UNSAFE: we have a request. do userdb lookup for it. */
 	req.data_size -= i;
@@ -430,7 +427,7 @@
 	client->conn = conn;
 	client->fd = client_fd;
 	client->auth_req = req;
-	memcpy(client->session_id, data, session_len);
+	client->session_id = i_strndup(data, session_len);
 	memcpy(client->data, data+i, req.data_size);
 	conn->refcount++;
 
diff -r f21d7614ac0d -r fbc969e1543b src/lib-master/master-login.h
--- a/src/lib-master/master-login.h	Wed Oct 29 11:46:50 2014 -0700
+++ b/src/lib-master/master-login.h	Wed Oct 29 18:32:36 2014 -0700
@@ -4,15 +4,13 @@
 #include "master-auth.h"
 
 #define MASTER_POSTLOGIN_TIMEOUT_DEFAULT 60
-/* base64(<IPv6><port><48bit timestamp>) + NUL */
-#define LOGIN_MAX_SESSION_ID_LEN 33
 
 struct master_login_client {
 	struct master_login_connection *conn;
 	int fd;
 
 	struct master_auth_request auth_req;
-	char session_id[LOGIN_MAX_SESSION_ID_LEN];
+	char *session_id;
 	unsigned char data[FLEXIBLE_ARRAY_MEMBER];
 };
 


More information about the dovecot-cvs mailing list