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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list