Use hub_malloc(), hub_free() etc.
This commit is contained in:
parent
20173e580d
commit
839309a4a8
@ -485,7 +485,7 @@ static int command_broadcast(struct command_base* cbase, struct hub_user* user,
|
||||
|
||||
cbuf_append_format(buf, "*** %s: Delivered to " PRINTF_SIZE_T " user%s", cmd->prefix, recipients, (recipients != 1 ? "s" : ""));
|
||||
send_message(cbase, user, buf);
|
||||
free(message);
|
||||
hub_free(message);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -259,11 +259,11 @@ static struct linked_list* cbfunc_get_user_list(struct plugin_handle* plugin, en
|
||||
* data in case the user disconnects before the plugin uses the
|
||||
* list. This way, any hub functions the plugin tries to call will
|
||||
* fail, but at least it won't be trying to access free'd memory. */
|
||||
struct plugin_user* puser = (struct plugin_user*)malloc(sizeof(struct plugin_user));
|
||||
struct plugin_user* puser = (struct plugin_user*)hub_malloc(sizeof(struct plugin_user));
|
||||
if(puser == NULL)
|
||||
{
|
||||
plugin->error_msg = "Unable to allocate memory for list entry in get_user_list.";
|
||||
list_clear(new_list, &free);
|
||||
list_clear(new_list, &hub_free);
|
||||
list_destroy(new_list);
|
||||
return NULL;
|
||||
}
|
||||
@ -286,7 +286,7 @@ static void cbfunc_free_user_list(struct plugin_handle* handle, struct linked_li
|
||||
{
|
||||
if(list != NULL)
|
||||
{
|
||||
list_clear(list, &free);
|
||||
list_clear(list, &hub_free);
|
||||
list_destroy(list);
|
||||
}
|
||||
}
|
||||
|
@ -38,17 +38,14 @@ int ucmd_expand_tt(struct plugin_ucmd* ucmd, size_t size)
|
||||
|
||||
/* Try to allocate the space. NB we add one to the space to enforce a null
|
||||
* byte. */
|
||||
char* newtt = (char*)malloc(size+1);
|
||||
char* newtt = (char*)hub_malloc_zero(size+1);
|
||||
if(newtt == NULL) return 0;
|
||||
|
||||
/* Empty the contents. */
|
||||
memset(newtt, 0, size+1);
|
||||
|
||||
/* Copy any existing data. */
|
||||
if(ucmd->tt != NULL)
|
||||
{
|
||||
memcpy(newtt, ucmd->tt, ucmd->length);
|
||||
free(ucmd->tt);
|
||||
hub_free(ucmd->tt);
|
||||
}
|
||||
|
||||
/* Update the structure. */
|
||||
@ -97,7 +94,7 @@ char* ucmd_msg_escape(const char* message)
|
||||
{
|
||||
/* Allocate the memory we need. */
|
||||
size_t esclen = ucmd_msg_escape_length(message);
|
||||
char *escaped = malloc(esclen + 1);
|
||||
char *escaped = hub_malloc(esclen + 1);
|
||||
|
||||
int insub = 0;
|
||||
size_t i;
|
||||
@ -167,7 +164,7 @@ struct plugin_ucmd* cbfunc_ucmd_create(struct plugin_handle* plugin, const char*
|
||||
}
|
||||
|
||||
/* Allocate space for the command structure. */
|
||||
struct plugin_ucmd* cmd = (struct plugin_ucmd*)malloc(sizeof(struct plugin_ucmd));
|
||||
struct plugin_ucmd* cmd = (struct plugin_ucmd*)hub_malloc(sizeof(struct plugin_ucmd));
|
||||
if(cmd == NULL)
|
||||
{
|
||||
plugin->error_msg = "Not enough memory to create user command.";
|
||||
@ -208,7 +205,7 @@ int cbfunc_ucmd_add_chat(struct plugin_handle* plugin, struct plugin_ucmd* ucmd,
|
||||
* the UCMD escape is needed to handle substitution blocks correctly. */
|
||||
char* temp = ucmd_msg_escape(message);
|
||||
char* escmsg = adc_msg_escape(temp);
|
||||
free(temp);
|
||||
hub_free(temp);
|
||||
size_t msglen = strlen(escmsg);
|
||||
|
||||
/* Format of a chat message: "BMSG\s%[mySID]\s<double-escaped message>\n".
|
||||
@ -219,7 +216,7 @@ int cbfunc_ucmd_add_chat(struct plugin_handle* plugin, struct plugin_ucmd* ucmd,
|
||||
if(ucmd_expand_tt(ucmd, ucmd->capacity + required) == 0)
|
||||
{
|
||||
plugin->error_msg = "Could not expand memory to store chat message.";
|
||||
free(escmsg);
|
||||
hub_free(escmsg);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -231,7 +228,7 @@ int cbfunc_ucmd_add_chat(struct plugin_handle* plugin, struct plugin_ucmd* ucmd,
|
||||
/* Copy the message. */
|
||||
strncpy(ucmd->tt + ucmd->length, escmsg, msglen);
|
||||
ucmd->length += msglen;
|
||||
free(escmsg);
|
||||
hub_free(escmsg);
|
||||
|
||||
/* If it is a 'me' message, add the flag. */
|
||||
if(me)
|
||||
@ -256,7 +253,7 @@ int cbfunc_ucmd_add_pm(struct plugin_handle* plugin, struct plugin_ucmd* ucmd, c
|
||||
* the UCMD escape is needed to handle substitution blocks correctly. */
|
||||
char* temp = ucmd_msg_escape(message);
|
||||
char* escmsg = adc_msg_escape(temp);
|
||||
free(temp);
|
||||
hub_free(temp);
|
||||
size_t msglen = strlen(escmsg);
|
||||
|
||||
/* If no target SID is given, use the keyword expansion %[userSID] for the
|
||||
@ -271,7 +268,7 @@ int cbfunc_ucmd_add_pm(struct plugin_handle* plugin, struct plugin_ucmd* ucmd, c
|
||||
if(ucmd_expand_tt(ucmd, ucmd->capacity + required) == 0)
|
||||
{
|
||||
plugin->error_msg = "Could not expand memory to store private message.";
|
||||
free(escmsg);
|
||||
hub_free(escmsg);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -293,7 +290,7 @@ int cbfunc_ucmd_add_pm(struct plugin_handle* plugin, struct plugin_ucmd* ucmd, c
|
||||
/* Message. */
|
||||
strncpy(ucmd->tt + ucmd->length, escmsg, msglen);
|
||||
ucmd->length += msglen;
|
||||
free(escmsg);
|
||||
hub_free(escmsg);
|
||||
|
||||
/* Add the PM flag and final line break. */
|
||||
strncpy(ucmd->tt + ucmd->length, "\\sPM%[mySID]\\n", 14);
|
||||
@ -378,13 +375,13 @@ int cbfunc_ucmd_send(struct plugin_handle* plugin, struct plugin_user* user, str
|
||||
void cbfunc_ucmd_free(struct plugin_handle* plugin, struct plugin_ucmd* ucmd){
|
||||
if(ucmd->name != NULL)
|
||||
{
|
||||
free(ucmd->name);
|
||||
hub_free(ucmd->name);
|
||||
ucmd->name = NULL;
|
||||
}
|
||||
if(ucmd->tt != NULL)
|
||||
{
|
||||
free(ucmd->tt);
|
||||
hub_free(ucmd->tt);
|
||||
ucmd->tt = NULL;
|
||||
}
|
||||
free(ucmd);
|
||||
hub_free(ucmd);
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ int add_reserved_sid(char* nick, int splitcount, void* data)
|
||||
}
|
||||
|
||||
/* Try to create a structure for the new reserved SID. */
|
||||
struct reserved_sid* newresv = (struct reserved_sid*)malloc(sizeof(struct reserved_sid));
|
||||
struct reserved_sid* newresv = (struct reserved_sid*)hub_malloc(sizeof(struct reserved_sid));
|
||||
if(newresv == NULL)
|
||||
{
|
||||
LOG_ERROR("Could not allocate memory for reserved SID for %s", nick);
|
||||
@ -94,11 +94,11 @@ int add_reserved_sid(char* nick, int splitcount, void* data)
|
||||
}
|
||||
|
||||
/* Try to create a dummy user for the reserved SID. */
|
||||
newresv->dummy_user = (struct hub_user*)malloc(sizeof(struct hub_user));
|
||||
newresv->dummy_user = (struct hub_user*)hub_malloc(sizeof(struct hub_user));
|
||||
if(newresv->dummy_user == NULL)
|
||||
{
|
||||
LOG_ERROR("Could not allocate memory for reserved SID for %s", nick);
|
||||
free(newresv);
|
||||
hub_free(newresv);
|
||||
return -1;
|
||||
}
|
||||
strncpy(newresv->dummy_user->id.nick, nick, nicklen+1);
|
||||
@ -124,8 +124,8 @@ void remove_reserved_sid(void *node)
|
||||
struct reserved_sid* resv = (struct reserved_sid*)node;
|
||||
LOG_INFO("Removing reserved SID %s for %s", sid_to_string(resv->sid), resv->dummy_user->id.nick);
|
||||
sid_free(resv->pool, resv->sid);
|
||||
free(resv->dummy_user);
|
||||
free(resv);
|
||||
hub_free(resv->dummy_user);
|
||||
hub_free(resv);
|
||||
}
|
||||
|
||||
int uman_init(struct hub_info* hub)
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "plugin_api/handle.h"
|
||||
#include "plugin_api/types.h"
|
||||
#include "util/list.h"
|
||||
#include "util/memory.h"
|
||||
#include "util/misc.h"
|
||||
#include "util/config_token.h"
|
||||
|
||||
@ -107,7 +108,7 @@ void free_data(struct plugin_handle* plugin, struct ucmd_data* data)
|
||||
}
|
||||
|
||||
/* Done with the data structure. */
|
||||
free(data);
|
||||
hub_free(data);
|
||||
}
|
||||
}
|
||||
|
||||
@ -242,13 +243,13 @@ int parse_pm(struct parse_state* state, char* args)
|
||||
return -1;
|
||||
}
|
||||
args[4] = 0;
|
||||
target = strdup(args);
|
||||
target = hub_strdup(args);
|
||||
args += 5;
|
||||
}
|
||||
|
||||
/* Add the message. */
|
||||
int retval = state->plugin->hub.ucmd_add_pm(state->plugin, state->ucmd, target, args, echo);
|
||||
if(target != NULL) free(target);
|
||||
if(target != NULL) hub_free(target);
|
||||
|
||||
/* Done. */
|
||||
if(retval)
|
||||
@ -351,7 +352,7 @@ int parse_line(char *line, int line_number, void* data)
|
||||
int parse_file(struct plugin_handle* plugin, struct ucmd_data* data, const char* filename)
|
||||
{
|
||||
/* Create the parser state. */
|
||||
struct parse_state* state = (struct parse_state*)malloc(sizeof(struct parse_state));
|
||||
struct parse_state* state = (struct parse_state*)hub_malloc(sizeof(struct parse_state));
|
||||
state->plugin = plugin;
|
||||
state->data = data;
|
||||
state->ucmd = NULL;
|
||||
@ -383,7 +384,7 @@ int parse_file(struct plugin_handle* plugin, struct ucmd_data* data, const char*
|
||||
/* Clean up memory from the state. If ucmd is not null, then there was an
|
||||
* error and it is a partially-processed object we also need to free. */
|
||||
if(state->ucmd != NULL) plugin->hub.ucmd_free(plugin, state->ucmd);
|
||||
free(state);
|
||||
hub_free(state);
|
||||
|
||||
/* Done. */
|
||||
return retval;
|
||||
@ -397,7 +398,7 @@ int parse_config(struct plugin_handle* plugin, const char* config)
|
||||
int got_file = 0;
|
||||
|
||||
/* Create space for the data we need. */
|
||||
struct ucmd_data *data = (struct ucmd_data *)malloc(sizeof(struct ucmd_data));
|
||||
struct ucmd_data *data = (struct ucmd_data *)hub_malloc(sizeof(struct ucmd_data));
|
||||
if(data == NULL){
|
||||
plugin->error_msg = "Could not allocate data storage.";
|
||||
return -1;
|
||||
@ -414,7 +415,7 @@ int parse_config(struct plugin_handle* plugin, const char* config)
|
||||
* lists have been initialised. */
|
||||
int j;
|
||||
for(j = 0; j < i; j++) list_destroy(data->commands[j]);
|
||||
free(data);
|
||||
hub_free(data);
|
||||
plugin->error_msg = "Could not allocate data storage.";
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user