]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Removed fixed length limit for session-id.
authorTimo Sirainen <tss@iki.fi>
Thu, 30 Oct 2014 01:32:36 +0000 (18:32 -0700)
committerTimo Sirainen <tss@iki.fi>
Thu, 30 Oct 2014 01:32:36 +0000 (18:32 -0700)
src/lib-master/master-login.c
src/lib-master/master-login.h

index fce19e3f467b97b7d3e6ebb2f602a8ad991958e6..7e2bdfba08f1683bae102f62b4021c0b2a40619f 100644 (file)
@@ -192,6 +192,7 @@ static void master_login_client_free(struct master_login_client **_client)
                client->conn->refcount--;
        }
        master_login_conn_unref(&client->conn);
+       i_free(client->session_id);
        i_free(client);
 }
 
@@ -419,10 +420,6 @@ static void master_login_conn_input(struct master_login_connection *conn)
                        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 @@ static void master_login_conn_input(struct master_login_connection *conn)
        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++;
 
index 4bd667729f6ff7dce054d4201f616e0cf451e0a2..1b9014a4a336465c1f3f21833b8ffa0441edd074 100644 (file)
@@ -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];
 };