]> granicus.if.org Git - libevent/commitdiff
ws-chat-server: fix session name initialization (using of uninitialized data)
authorAzat Khuzhin <azat@libevent.org>
Sat, 12 Nov 2022 17:59:41 +0000 (18:59 +0100)
committerAzat Khuzhin <azat@libevent.org>
Sat, 12 Nov 2022 18:00:10 +0000 (19:00 +0100)
sample/ws-chat-server.c

index fae23e35f782f5c0088e27e8ff8dd65f555a2cfd..4a2c8fa06ab534cb43a1592e8faab1f52ca1edc5 100644 (file)
@@ -152,11 +152,11 @@ on_ws(struct evhttp_request *req, void *arg)
        socklen_t len;
 
        client = calloc(sizeof(*client), 1);
-       addr2str((struct sockaddr *)&addr, client->name, sizeof(client->name));
+
        client->evws = evws_new_session(req, on_msg_cb, client, 0);
        if (!client->evws) {
                free(client);
-               log_d("Failed to create session (for %s)\n", client->name);
+               log_d("Failed to create session\n");
                return;
        }
 
@@ -164,6 +164,7 @@ on_ws(struct evhttp_request *req, void *arg)
 
        len = sizeof(addr);
        getpeername(fd, (struct sockaddr *)&addr, &len);
+       addr2str((struct sockaddr *)&addr, client->name, sizeof(client->name));
 
        log_d("New client joined from %s\n", client->name);