mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 10:18:25 +00:00
Fix SEGV on --local= added by immediately previous commit.
This commit is contained in:
14
src/option.c
14
src/option.c
@@ -866,10 +866,7 @@ char *parse_server(char *arg, struct server_details *sdetails)
|
|||||||
|
|
||||||
*sdetails->interface = 0;
|
*sdetails->interface = 0;
|
||||||
sdetails->addr_type = AF_UNSPEC;
|
sdetails->addr_type = AF_UNSPEC;
|
||||||
sdetails->valid = 0;
|
|
||||||
sdetails->hostinfo = sdetails->orig_hostinfo = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
if (strcmp(arg, "#") == 0)
|
if (strcmp(arg, "#") == 0)
|
||||||
{
|
{
|
||||||
if (sdetails->flags)
|
if (sdetails->flags)
|
||||||
@@ -1104,6 +1101,8 @@ static char *domain_rev4(int from_file, char *server, struct in_addr *addr4, int
|
|||||||
char interface[IF_NAMESIZE+1];
|
char interface[IF_NAMESIZE+1];
|
||||||
int count = 1, rem, addrbytes, addrbits;
|
int count = 1, rem, addrbytes, addrbits;
|
||||||
struct server_details sdetails;
|
struct server_details sdetails;
|
||||||
|
|
||||||
|
memset(&sdetails, 0, sizeof(struct server_details));
|
||||||
sdetails.addr = &serv_addr;
|
sdetails.addr = &serv_addr;
|
||||||
sdetails.source_addr = &source_addr;
|
sdetails.source_addr = &source_addr;
|
||||||
sdetails.interface = interface;
|
sdetails.interface = interface;
|
||||||
@@ -1185,6 +1184,8 @@ static char *domain_rev6(int from_file, char *server, struct in6_addr *addr6, in
|
|||||||
char interface[IF_NAMESIZE+1];
|
char interface[IF_NAMESIZE+1];
|
||||||
int count = 1, rem, addrbytes, addrbits;
|
int count = 1, rem, addrbytes, addrbits;
|
||||||
struct server_details sdetails;
|
struct server_details sdetails;
|
||||||
|
|
||||||
|
memset(&sdetails, 0, sizeof(struct server_details));
|
||||||
sdetails.addr = &serv_addr;
|
sdetails.addr = &serv_addr;
|
||||||
sdetails.source_addr = &source_addr;
|
sdetails.source_addr = &source_addr;
|
||||||
sdetails.interface = interface;
|
sdetails.interface = interface;
|
||||||
@@ -2970,13 +2971,14 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
|
|||||||
union all_addr addr;
|
union all_addr addr;
|
||||||
union mysockaddr serv_addr, source_addr;
|
union mysockaddr serv_addr, source_addr;
|
||||||
char interface[IF_NAMESIZE+1];
|
char interface[IF_NAMESIZE+1];
|
||||||
|
|
||||||
struct server_details sdetails;
|
struct server_details sdetails;
|
||||||
|
|
||||||
|
memset(&sdetails, 0, sizeof(struct server_details));
|
||||||
sdetails.addr = &serv_addr;
|
sdetails.addr = &serv_addr;
|
||||||
sdetails.source_addr = &source_addr;
|
sdetails.source_addr = &source_addr;
|
||||||
sdetails.interface = interface;
|
sdetails.interface = interface;
|
||||||
sdetails.flags = &flags;
|
sdetails.flags = &flags;
|
||||||
|
|
||||||
unhide_metas(arg);
|
unhide_metas(arg);
|
||||||
|
|
||||||
/* split the domain args, if any and skip to the end of them. */
|
/* split the domain args, if any and skip to the end of them. */
|
||||||
|
|||||||
Reference in New Issue
Block a user