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