2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 22:15:20 +00:00

4164. [bug] Don't rename slave files and journals on out of memory.

[RT #40033]

4163.   [bug]           Address compiler warnings. [RT #40024]
This commit is contained in:
Mark Andrews
2015-07-13 09:46:59 +10:00
parent b3338fc248
commit 3a49d0ff10
6 changed files with 26 additions and 15 deletions

View File

@@ -1,3 +1,8 @@
4164. [bug] Don't rename slave files and journals on out of memory.
[RT #40033]
4163. [bug] Address compiler warnings. [RT #40024]
4162. [bug] httpdmgr->flags was not being initialized. [RT #40017] 4162. [bug] httpdmgr->flags was not being initialized. [RT #40017]
4161. [test] Add JSON test for traffic size stats; also test 4161. [test] Add JSON test for traffic size stats; also test

View File

@@ -579,7 +579,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
const cfg_obj_t *portobj; const cfg_obj_t *portobj;
const cfg_obj_t *dscpobj; const cfg_obj_t *dscpobj;
in_port_t port; in_port_t port;
isc_dscp_t dscp; isc_dscp_t dscp = -1;
dns_fixedname_t fname; dns_fixedname_t fname;
isc_sockaddr_t *addrs = NULL; isc_sockaddr_t *addrs = NULL;
isc_dscp_t *dscps = NULL; isc_dscp_t *dscps = NULL;

View File

@@ -90,16 +90,17 @@ typedef enum {
*/ */
#define DNS_RRL_MAX_PREFIX 64 #define DNS_RRL_MAX_PREFIX 64
typedef union dns_rrl_key dns_rrl_key_t; typedef union dns_rrl_key dns_rrl_key_t;
struct dns__rrl_key {
isc_uint32_t ip[DNS_RRL_MAX_PREFIX/32];
isc_uint32_t qname_hash;
dns_rdatatype_t qtype;
isc_uint8_t qclass;
dns_rrl_rtype_t rtype :4; /* 3 bits + sign bit */
isc_boolean_t ipv6 :1;
};
union dns_rrl_key { union dns_rrl_key {
struct { struct dns__rrl_key s;
isc_uint32_t ip[DNS_RRL_MAX_PREFIX/32]; isc_uint16_t w[sizeof(struct dns__rrl_key)/sizeof(isc_uint16_t)];
isc_uint32_t qname_hash;
dns_rdatatype_t qtype;
isc_uint8_t qclass;
dns_rrl_rtype_t rtype :4; /* 3 bits + sign bit */
isc_boolean_t ipv6 :1;
} s;
isc_uint16_t w[1];
}; };
/* /*

View File

@@ -376,7 +376,7 @@ hash_key(const dns_rrl_key_t *key) {
int i; int i;
hval = key->w[0]; hval = key->w[0];
for (i = sizeof(*key) / sizeof(key->w[0]) - 1; i >= 0; --i) { for (i = sizeof(key->w) / sizeof(key->w[0]) - 1; i >= 0; --i) {
hval = key->w[i] + (hval<<1); hval = key->w[i] + (hval<<1);
} }
return (hval); return (hval);

View File

@@ -569,6 +569,7 @@ rrset_visible(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
result = ISC_R_SUCCESS; result = ISC_R_SUCCESS;
break; break;
default: default:
*visible = ISC_FALSE; /* silence false compiler warning */
break; break;
} }
return (result); return (result);

View File

@@ -4666,10 +4666,14 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
zone->type == dns_zone_stub || zone->type == dns_zone_stub ||
zone->type == dns_zone_key || zone->type == dns_zone_key ||
(zone->type == dns_zone_redirect && zone->masters != NULL)) { (zone->type == dns_zone_redirect && zone->masters != NULL)) {
if (zone->journal != NULL) if (result != ISC_R_NOMEMORY) {
zone_saveunique(zone, zone->journal, "jn-XXXXXXXX"); if (zone->journal != NULL)
if (zone->masterfile != NULL) zone_saveunique(zone, zone->journal,
zone_saveunique(zone, zone->masterfile, "db-XXXXXXXX"); "jn-XXXXXXXX");
if (zone->masterfile != NULL)
zone_saveunique(zone, zone->masterfile,
"db-XXXXXXXX");
}
/* Mark the zone for immediate refresh. */ /* Mark the zone for immediate refresh. */
zone->refreshtime = now; zone->refreshtime = now;