1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-08 18:53:12 +02:00

relay: remove check of NULL pointers before calling free() (issue #865)

This commit is contained in:
Sébastien Helleu
2024-04-24 23:46:57 +02:00
parent b138510cff
commit 7ee57af8e3
17 changed files with 136 additions and 272 deletions
+2 -4
View File
@@ -206,8 +206,7 @@ relay_api_msg_send_json_internal (struct t_relay_client *client,
string,
(string) ? strlen (string) : 0,
NULL); /* raw_message */
if (string)
free (string);
free (string);
cJSON_DetachItemFromObject (json, "body");
cJSON_Delete (json);
}
@@ -217,8 +216,7 @@ relay_api_msg_send_json_internal (struct t_relay_client *client,
string = (json_body) ? cJSON_PrintUnformatted (json_body) : NULL;
num_bytes = relay_http_send_json (client, return_code, message, headers,
string);
if (string)
free (string);
free (string);
}
return num_bytes;
@@ -312,8 +312,7 @@ relay_remote_network_send (struct t_relay_remote *remote,
num_sent = relay_remote_network_send_data (remote, ptr_data, data_size);
if (websocket_frame)
free (websocket_frame);
free (websocket_frame);
if (num_sent >= 0)
{
@@ -515,8 +514,7 @@ relay_remote_network_recv_buffer (struct t_relay_remote *remote,
&num_frames,
&remote->partial_ws_frame,
&remote->partial_ws_frame_size);
if (buffer2)
free (buffer2);
free (buffer2);
if (!rc)
{
/* fatal error when decoding frame: close connection */
@@ -524,8 +522,7 @@ relay_remote_network_recv_buffer (struct t_relay_remote *remote,
{
for (i = 0; i < num_frames; i++)
{
if (frames[i].payload)
free (frames[i].payload);
free (frames[i].payload);
}
free (frames);
}
@@ -540,8 +537,7 @@ relay_remote_network_recv_buffer (struct t_relay_remote *remote,
relay_remote_network_read_websocket_frames (remote, frames, num_frames);
for (i = 0; i < num_frames; i++)
{
if (frames[i].payload)
free (frames[i].payload);
free (frames[i].payload);
}
free (frames);
}
@@ -733,8 +729,7 @@ relay_remote_network_connect_ws_auth (struct t_relay_remote *remote)
/* generate random websocket key (16 bytes) */
gcry_create_nonce (ws_key, sizeof (ws_key));
weechat_string_base_encode ("64", ws_key, sizeof (ws_key), ws_key_base64);
if (remote->websocket_key)
free (remote->websocket_key);
free (remote->websocket_key);
remote->websocket_key = strdup (ws_key_base64);
weechat_string_base_encode ("64", str_auth, strlen (str_auth), str_auth_base64);
@@ -773,10 +768,8 @@ relay_remote_network_connect_ws_auth (struct t_relay_remote *remote)
str_http, strlen (str_http));
end:
if (password)
free (password);
if (totp_secret)
free (totp_secret);
free (password);
free (totp_secret);
}
/*
@@ -1450,10 +1443,8 @@ error:
weechat_printf (NULL,
_("remote[%s]: failed to connect, not enough memory"),
remote->name);
if (url)
free (url);
if (body)
free (body);
free (url);
free (body);
if (options)
weechat_hashtable_free (options);
return 0;