Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
BIND
Commits
1cf54d19
Commit
1cf54d19
authored
Apr 20, 2004
by
Mark Andrews
Browse files
1612. [bug] check-names at the option/view level could trigger
an INSIST. [RT# 11116]
parent
349f684c
Changes
5
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
1cf54d19
...
...
@@ -18,7 +18,8 @@
Missing #ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX/#endif.
[RT #11119]
1612. [placeholder] rt11116
1612. [bug] check-names at the option/view level could trigger
an INSIST. [RT# 11116]
1611. [bug] solaris: IPv6 interface scanning failed to cope with
no active IPv6 interfaces.
...
...
bin/named/config.c
View file @
1cf54d19
...
...
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: config.c,v 1.4
8
2004/04/
19 23:09:51
marka Exp $ */
/* $Id: config.c,v 1.4
9
2004/04/
20 14:11:46
marka Exp $ */
#include
<config.h>
...
...
@@ -195,7 +195,7 @@ ns_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf) {
}
isc_result_t
ns_config_get
(
cfg_obj_t
**
maps
,
const
char
*
name
,
cfg_obj_t
**
obj
)
{
ns_config_get
(
cfg_obj_t
**
maps
,
const
char
*
name
,
cfg_obj_t
**
obj
)
{
int
i
;
for
(
i
=
0
;;
i
++
)
{
...
...
@@ -206,6 +206,41 @@ ns_config_get(cfg_obj_t **maps, const char* name, cfg_obj_t **obj) {
}
}
isc_result_t
ns_checknames_get
(
cfg_obj_t
**
maps
,
const
char
*
which
,
cfg_obj_t
**
obj
)
{
cfg_listelt_t
*
element
;
cfg_obj_t
*
checknames
;
cfg_obj_t
*
type
;
cfg_obj_t
*
value
;
int
i
;
for
(
i
=
0
;;
i
++
)
{
if
(
maps
[
i
]
==
NULL
)
return
(
ISC_R_NOTFOUND
);
checknames
=
NULL
;
if
(
cfg_map_get
(
maps
[
i
],
"check-names"
,
&
checknames
)
==
ISC_R_SUCCESS
)
{
/*
* Zone map entry is not a list.
*/
if
(
checknames
!=
NULL
&&
!
cfg_obj_islist
(
checknames
))
{
*
obj
=
checknames
;
return
(
ISC_R_SUCCESS
);
}
for
(
element
=
cfg_list_first
(
checknames
);
element
!=
NULL
;
element
=
cfg_list_next
(
element
))
{
value
=
cfg_listelt_value
(
element
);
type
=
cfg_tuple_get
(
value
,
"type"
);
if
(
strcasecmp
(
cfg_obj_asstring
(
type
),
which
)
==
0
)
{
*
obj
=
cfg_tuple_get
(
value
,
"mode"
);
return
(
ISC_R_SUCCESS
);
}
}
}
}
}
int
ns_config_listcount
(
cfg_obj_t
*
list
)
{
cfg_listelt_t
*
e
;
...
...
bin/named/include/named/config.h
View file @
1cf54d19
...
...
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: config.h,v 1.
6
2004/0
3/05 04:57:55
marka Exp $ */
/* $Id: config.h,v 1.
7
2004/0
4/20 14:11:47
marka Exp $ */
#ifndef NAMED_CONFIG_H
#define NAMED_CONFIG_H 1
...
...
@@ -31,6 +31,9 @@ ns_config_parsedefaults(cfg_parser_t *parser, cfg_obj_t **conf);
isc_result_t
ns_config_get
(
cfg_obj_t
**
maps
,
const
char
*
name
,
cfg_obj_t
**
obj
);
isc_result_t
ns_checknames_get
(
cfg_obj_t
**
maps
,
const
char
*
name
,
cfg_obj_t
**
obj
);
int
ns_config_listcount
(
cfg_obj_t
*
list
);
...
...
bin/named/server.c
View file @
1cf54d19
...
...
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: server.c,v 1.42
4
2004/04/20
07:16:23
marka Exp $ */
/* $Id: server.c,v 1.42
5
2004/04/20
14:11:46
marka Exp $ */
#include
<config.h>
...
...
@@ -399,7 +399,7 @@ mustbesecure(cfg_obj_t *mbs, dns_resolver_t *resolver)
isc_buffer_init
(
&
b
,
str
,
strlen
(
str
));
isc_buffer_add
(
&
b
,
strlen
(
str
));
CHECK
(
dns_name_fromtext
(
name
,
&
b
,
dns_rootname
,
ISC_FALSE
,
NULL
));
ISC_FALSE
,
NULL
));
value
=
cfg_obj_asboolean
(
cfg_tuple_get
(
obj
,
"value"
));
CHECK
(
dns_resolver_setmustbesecure
(
resolver
,
name
,
value
));
}
...
...
@@ -857,33 +857,22 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
* Check-names.
*/
obj
=
NULL
;
str
=
""
;
result
=
ns_config_get
(
maps
,
"check-names"
,
&
obj
);
result
=
ns_checknames_get
(
maps
,
"response"
,
&
obj
);
INSIST
(
result
==
ISC_R_SUCCESS
);
for
(
element
=
cfg_list_first
(
obj
);
element
!=
NULL
;
element
=
cfg_list_next
(
element
))
{
cfg_obj_t
*
value
,
*
type
;
value
=
cfg_listelt_value
(
element
);
type
=
cfg_tuple_get
(
value
,
"type"
);
if
(
strcasecmp
(
cfg_obj_asstring
(
type
),
"response"
)
==
0
)
{
str
=
cfg_obj_asstring
(
cfg_tuple_get
(
value
,
"mode"
));
break
;
}
}
if
(
strcasecmp
(
str
,
"fail"
)
==
0
)
{
check
=
DNS_RESOLVER_CHECKNAMES
|
str
=
cfg_obj_asstring
(
obj
);
if
(
strcasecmp
(
str
,
"fail"
)
==
0
)
{
check
=
DNS_RESOLVER_CHECKNAMES
|
DNS_RESOLVER_CHECKNAMESFAIL
;
view
->
checknames
=
ISC_TRUE
;
}
else
if
(
strcasecmp
(
str
,
"warn"
)
==
0
)
{
check
=
DNS_RESOLVER_CHECKNAMES
;
}
else
if
(
strcasecmp
(
str
,
"warn"
)
==
0
)
{
check
=
DNS_RESOLVER_CHECKNAMES
;
view
->
checknames
=
ISC_FALSE
;
}
else
if
(
strcasecmp
(
str
,
"ignore"
)
==
0
)
{
}
else
if
(
strcasecmp
(
str
,
"ignore"
)
==
0
)
{
check
=
0
;
view
->
checknames
=
ISC_FALSE
;
}
else
INSIST
(
0
);
INSIST
(
0
);
/*
* Resolver.
...
...
@@ -1199,7 +1188,7 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
*/
if
(
view
->
enablednssec
)
{
CHECK
(
configure_view_dnsseckeys
(
vconfig
,
config
,
mctx
,
&
view
->
secroots
));
&
view
->
secroots
));
dns_resolver_resetmustbesecure
(
view
->
resolver
);
obj
=
NULL
;
result
=
ns_config_get
(
maps
,
"dnssec-must-be-secure"
,
&
obj
);
...
...
@@ -1229,7 +1218,7 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
view
->
preferred_glue
=
dns_rdatatype_aaaa
;
else
view
->
preferred_glue
=
0
;
}
else
}
else
view
->
preferred_glue
=
0
;
obj
=
NULL
;
...
...
@@ -1950,7 +1939,7 @@ adjust_interfaces(ns_server_t *server, isc_mem_t *mctx) {
*/
static
void
interface_timer_tick
(
isc_task_t
*
task
,
isc_event_t
*
event
)
{
isc_result_t
result
;
isc_result_t
result
;
ns_server_t
*
server
=
(
ns_server_t
*
)
event
->
ev_arg
;
INSIST
(
task
==
server
->
task
);
UNUSED
(
task
);
...
...
@@ -2146,7 +2135,7 @@ load_configuration(const char *filename, ns_server_t *server,
* option where the above parsing failed, parse resolv.conf.
*/
if
(
ns_g_lwresdonly
&&
(
lwresd_g_useresolvconf
||
(
lwresd_g_useresolvconf
||
(
!
ns_g_conffileset
&&
result
==
ISC_R_FILENOTFOUND
)))
{
isc_log_write
(
ns_g_lctx
,
...
...
@@ -3123,29 +3112,29 @@ ns_add_reserved_dispatch(ns_server_t *server, isc_sockaddr_t *addr) {
dispatch
->
dispatchgen
=
server
->
dispatchgen
;
dispatch
->
dispatch
=
NULL
;
attrs
=
0
;
attrs
|=
DNS_DISPATCHATTR_UDP
;
switch
(
isc_sockaddr_pf
(
addr
))
{
case
AF_INET
:
attrs
|=
DNS_DISPATCHATTR_IPV4
;
break
;
case
AF_INET6
:
attrs
|=
DNS_DISPATCHATTR_IPV6
;
break
;
attrs
=
0
;
attrs
|=
DNS_DISPATCHATTR_UDP
;
switch
(
isc_sockaddr_pf
(
addr
))
{
case
AF_INET
:
attrs
|=
DNS_DISPATCHATTR_IPV4
;
break
;
case
AF_INET6
:
attrs
|=
DNS_DISPATCHATTR_IPV6
;
break
;
default:
result
=
ISC_R_NOTIMPLEMENTED
;
goto
cleanup
;
}
attrmask
=
0
;
attrmask
|=
DNS_DISPATCHATTR_UDP
;
attrmask
|=
DNS_DISPATCHATTR_TCP
;
attrmask
|=
DNS_DISPATCHATTR_IPV4
;
attrmask
|=
DNS_DISPATCHATTR_IPV6
;
}
attrmask
=
0
;
attrmask
|=
DNS_DISPATCHATTR_UDP
;
attrmask
|=
DNS_DISPATCHATTR_TCP
;
attrmask
|=
DNS_DISPATCHATTR_IPV4
;
attrmask
|=
DNS_DISPATCHATTR_IPV6
;
result
=
dns_dispatch_getudp
(
ns_g_dispatchmgr
,
ns_g_socketmgr
,
ns_g_taskmgr
,
&
dispatch
->
addr
,
4096
,
1000
,
32768
,
16411
,
16433
,
attrs
,
attrmask
,
&
dispatch
->
dispatch
);
ns_g_taskmgr
,
&
dispatch
->
addr
,
4096
,
1000
,
32768
,
16411
,
16433
,
attrs
,
attrmask
,
&
dispatch
->
dispatch
);
if
(
result
!=
ISC_R_SUCCESS
)
goto
cleanup
;
...
...
bin/named/zoneconf.c
View file @
1cf54d19
...
...
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zoneconf.c,v 1.11
1
2004/0
3/30 02
:1
3
:4
3
marka Exp $ */
/* $Id: zoneconf.c,v 1.11
2
2004/0
4/20 14
:1
1
:4
6
marka Exp $ */
#include
<config.h>
...
...
@@ -295,11 +295,7 @@ strtoargv(isc_mem_t *mctx, char *s, unsigned int *argcp, char ***argvp) {
static
void
checknames
(
dns_zonetype_t
ztype
,
cfg_obj_t
**
maps
,
cfg_obj_t
**
objp
)
{
const
char
*
zone
=
NULL
;
cfg_listelt_t
*
element
;
cfg_obj_t
*
type
;
cfg_obj_t
*
value
;
cfg_obj_t
*
check
;
int
i
;
isc_result_t
result
;
switch
(
ztype
)
{
case
dns_zone_slave
:
zone
=
"slave"
;
break
;
...
...
@@ -307,24 +303,8 @@ checknames(dns_zonetype_t ztype, cfg_obj_t **maps, cfg_obj_t **objp) {
default:
INSIST
(
0
);
}
for
(
i
=
0
;
maps
[
i
]
!=
NULL
;
i
++
)
{
check
=
NULL
;
cfg_map_get
(
maps
[
i
],
"check-names"
,
&
check
);
if
(
check
!=
NULL
&&
!
cfg_obj_islist
(
check
))
{
*
objp
=
check
;
return
;
}
for
(
element
=
cfg_list_first
(
check
);
element
!=
NULL
;
element
=
cfg_list_next
(
element
))
{
value
=
cfg_listelt_value
(
element
);
type
=
cfg_tuple_get
(
value
,
"type"
);
if
(
strcasecmp
(
cfg_obj_asstring
(
type
),
zone
)
==
0
)
{
*
objp
=
cfg_tuple_get
(
value
,
"mode"
);
return
;
}
}
}
result
=
ns_checknames_get
(
maps
,
zone
,
objp
);
INSIST
(
result
==
ISC_R_SUCCESS
);
}
isc_result_t
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment