Fix some memory leaks that occur when clearing the URL-grabber list.

git-svn-id: svn://svn.code.sf.net/p/bitchx/code/trunk@133 13b04d17-f746-0410-82c6-800466cd88b0
This commit is contained in:
Kevin Easton
2011-06-01 12:53:30 +00:00
parent 52753a9e15
commit 3f8952f20a

View File

@@ -1575,8 +1575,16 @@ BUILT_IN_COMMAND(url_grabber)
snprintf(buffer, BIG_BUFFER_SIZE, "%s/BitchX.url", get_string_var(CTOOLZ_DIR_VAR));
filename = expand_twiddle(buffer);
if (!filename || !(file = fopen(filename, "a")))
if (!filename)
return;
file = fopen(filename, "a");
if (!file)
{
new_free(&filename);
return;
}
if (args && *args && (isdigit((unsigned char)*args) || *args == '-'))
number = next_arg(args, &args);
for (i = 0, cur_url = url_list; cur_url; cur_url = cur_url->next, i++)
@@ -1586,14 +1594,16 @@ BUILT_IN_COMMAND(url_grabber)
}
new_free(&filename);
fclose(file);
prev_url = url_list;
while (prev_url)
/* Clear URL list */
while (url_list)
{
cur_url = prev_url;
prev_url = cur_url->next;
new_free(&cur_url);
UrlList *tmp = url_list;
url_list = url_list->next;
new_free(&tmp->name);
new_free(&tmp);
}
url_list = NULL;
bitchsay("Url list saved");
do_display = 0;
}
@@ -1621,14 +1631,13 @@ BUILT_IN_COMMAND(url_grabber)
{
if (!*++p)
{
prev_url = url_list;
while (prev_url)
while (url_list)
{
cur_url = prev_url;
prev_url = cur_url->next;
new_free(&cur_url);
UrlList *tmp = url_list;
url_list = url_list->next;
new_free(&tmp->name);
new_free(&tmp);
}
url_list = NULL;
bitchsay("Url list cleared");
}
else
@@ -1641,7 +1650,8 @@ BUILT_IN_COMMAND(url_grabber)
url_list = url_list->next;
else
prev_url->next = cur_url->next;
new_free(&cur_url);
new_free(&cur_url->name);
new_free(&cur_url);
bitchsay("Cleared Url [%d]", q);
}
else