Changeset: a569d946f5d0 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a569d946f5d0 Modified Files: tools/merovingian/daemon/client.c Branch: Nov2019 Log Message:
Move challenge generation to before starting the client thread. Also see changeset 7a502e565fff which is another occurrence of the same problem. diffs (37 lines): diff --git a/tools/merovingian/daemon/client.c b/tools/merovingian/daemon/client.c --- a/tools/merovingian/daemon/client.c +++ b/tools/merovingian/daemon/client.c @@ -50,6 +50,7 @@ struct clientdata { int sock; bool isusock; struct threads *self; + char challenge[32]; }; static void * @@ -80,6 +81,7 @@ handleClient(void *data) sock = ((struct clientdata *) data)->sock; isusock = ((struct clientdata *) data)->isusock; self = ((struct clientdata *) data)->self; + memcpy(chal, ((struct clientdata *) data)->challenge, sizeof(chal)); free(data); fdin = socket_rstream(sock, "merovingian<-client (read)"); if (fdin == 0) { @@ -112,8 +114,6 @@ handleClient(void *data) } /* note: since Jan2012 we speak proto 9 for control connections */ - chal[31] = '\0'; - generateSalt(chal, 31); mnstr_printf(fout, "%s:merovingian:9:%s:%s:%s:", chal, mcrypt_getHashAlgorithms(), @@ -624,6 +624,8 @@ acceptConnections(int sock, int usock) data->isusock = isusock; p->dead = 0; data->self = p; + data->challenge[31] = '\0'; + generateSalt(data->challenge, 31); if (pthread_create(&p->tid, NULL, handleClient, data) == 0) { p->next = threads; threads = p; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list