Fix misuse of Client_iterate() in Client_voiceMsg().
[umurmur.git] / src / client.c
index d61de2b00a0297adda0f300a2ed750395998bac4..856c8645e7b647071a9af057d64ff7fe24cd64ac 100644 (file)
@@ -670,14 +670,18 @@ void Client_textmessage(client_t *client, char *text)
        uint32_t *tree_id;
        message_t *sendmsg = NULL;
 
-       message = Memory_safeMalloc(1, strlen(text) + 1);
+       message = strdup(text);
+
+       if (message == NULL)
+               Log_fatal("Out of memory");
+
        tree_id = Memory_safeMalloc(1, sizeof(uint32_t));
        *tree_id = 0;
        sendmsg = Msg_create(TextMessage);
        sendmsg->payload.textMessage->message = message;
        sendmsg->payload.textMessage->n_tree_id = 1;
        sendmsg->payload.textMessage->tree_id = tree_id;
-       strcpy(message, text);
+
        Client_send_message(client, sendmsg);
 }
 
@@ -979,7 +983,7 @@ int Client_voiceMsg(client_t *client, uint8_t *data, int len)
                }
                /* Sessions */
                for (i = 0; i < TARGET_MAX_SESSIONS && vt->sessions[i] != -1; i++) {
-                       client_t *c;
+                       client_t *c = NULL;
                        buffer[0] = (uint8_t) (type | 2);
                        Log_debug("Whisper session %d", vt->sessions[i]);
                        while (Client_iterate(&c) != NULL) {