Fix possible crash when requesting info on user.
[umurmur.git] / src / messagehandler.c
index faffea26b4204a697a928747145496ed740af39a..6b3a0738eb3f9ebb0a4f69abc00bea7a0aa2a35d 100644 (file)
@@ -247,24 +247,7 @@ void Mh_handle_message(client_t *client, message_t *msg)
                Client_send_message(client, sendmsg);
 
                if (!bOpus && client->bOpus && fake_celt_support) {
-                       char *message;
-                       uint32_t *tree_id;
-                       message_t *sendmsg = NULL;
-
-                       message = malloc(strlen(NO_CELT_MESSAGE) + 1);
-                       if (!message)
-                               Log_fatal("Out of memory");
-                       tree_id = malloc(sizeof(uint32_t));
-                       if (!tree_id)
-                               Log_fatal("Out of memory");
-                       *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;
-                       sprintf(message, NO_CELT_MESSAGE);
-                       Client_send_message(client, sendmsg);
-                       sendmsg = NULL;
+                       Client_textmessage(client, NO_CELT_MESSAGE);
                }
 
                /* Iterate channels and send channel info */
@@ -834,9 +817,12 @@ void Mh_handle_message(client_t *client, message_t *msg)
 
                        sendmsg->payload.userStats->version->has_version = true;
                        sendmsg->payload.userStats->version->version = target->version;
-                       sendmsg->payload.userStats->version->release = strdup(target->release);
-                       sendmsg->payload.userStats->version->os = strdup(target->os);
-                       sendmsg->payload.userStats->version->os_version = strdup(target->os_version);
+                       if (target->release)
+                               sendmsg->payload.userStats->version->release = strdup(target->release);
+                       if (target->os)
+                               sendmsg->payload.userStats->version->os = strdup(target->os);
+                       if (target->os_version)
+                               sendmsg->payload.userStats->version->os_version = strdup(target->os_version);
                        
                        sendmsg->payload.userStats->n_celt_versions = target->codec_count;
                        sendmsg->payload.userStats->celt_versions = malloc(sizeof(int32_t) * target->codec_count);