mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Fix use-after-free in mark_servers()
This commit is contained in:
committed by
Simon Kelley
parent
02f8754339
commit
022ad63f0c
@@ -559,7 +559,7 @@ static int maybe_free_servers = 0;
|
|||||||
/* Must be called before add_update_server() to set daemon->servers_tail */
|
/* Must be called before add_update_server() to set daemon->servers_tail */
|
||||||
void mark_servers(int flag)
|
void mark_servers(int flag)
|
||||||
{
|
{
|
||||||
struct server *serv, **up;
|
struct server *serv, *next, **up;
|
||||||
|
|
||||||
maybe_free_servers = !!flag;
|
maybe_free_servers = !!flag;
|
||||||
|
|
||||||
@@ -580,11 +580,13 @@ void mark_servers(int flag)
|
|||||||
1) numerous and 2) not reloaded often. We just delete
|
1) numerous and 2) not reloaded often. We just delete
|
||||||
and recreate. */
|
and recreate. */
|
||||||
if (flag)
|
if (flag)
|
||||||
for (serv = daemon->local_domains, up = &daemon->local_domains; serv; serv = serv->next)
|
for (serv = daemon->local_domains, up = &daemon->local_domains; serv; serv = next)
|
||||||
{
|
{
|
||||||
|
next = serv->next;
|
||||||
|
|
||||||
if (serv->flags & flag)
|
if (serv->flags & flag)
|
||||||
{
|
{
|
||||||
*up = serv->next;
|
*up = next;
|
||||||
free(serv->domain);
|
free(serv->domain);
|
||||||
free(serv);
|
free(serv);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user