patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
		
			
				
	
	
		
			69 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: contrib/bind9/lib/dns/rdata.c
 | |
| ===================================================================
 | |
| --- contrib/bind9/lib/dns/rdata.c.orig
 | |
| +++ contrib/bind9/lib/dns/rdata.c
 | |
| @@ -329,8 +329,8 @@
 | |
|  
 | |
|  	REQUIRE(rdata1 != NULL);
 | |
|  	REQUIRE(rdata2 != NULL);
 | |
| -	REQUIRE(rdata1->data != NULL);
 | |
| -	REQUIRE(rdata2->data != NULL);
 | |
| +	REQUIRE(rdata1->length == 0 || rdata1->data != NULL);
 | |
| +	REQUIRE(rdata2->length == 0 || rdata2->data != NULL);
 | |
|  	REQUIRE(DNS_RDATA_VALIDFLAGS(rdata1));
 | |
|  	REQUIRE(DNS_RDATA_VALIDFLAGS(rdata2));
 | |
|  
 | |
| @@ -360,8 +360,8 @@
 | |
|  
 | |
|  	REQUIRE(rdata1 != NULL);
 | |
|  	REQUIRE(rdata2 != NULL);
 | |
| -	REQUIRE(rdata1->data != NULL);
 | |
| -	REQUIRE(rdata2->data != NULL);
 | |
| +	REQUIRE(rdata1->length == 0 || rdata1->data != NULL);
 | |
| +	REQUIRE(rdata2->length == 0 || rdata2->data != NULL);
 | |
|  	REQUIRE(DNS_RDATA_VALIDFLAGS(rdata1));
 | |
|  	REQUIRE(DNS_RDATA_VALIDFLAGS(rdata2));
 | |
|  
 | |
| Index: contrib/bind9/lib/dns/rdataslab.c
 | |
| ===================================================================
 | |
| --- contrib/bind9/lib/dns/rdataslab.c.orig
 | |
| +++ contrib/bind9/lib/dns/rdataslab.c
 | |
| @@ -126,6 +126,11 @@
 | |
|  dns_rdataslab_fromrdataset(dns_rdataset_t *rdataset, isc_mem_t *mctx,
 | |
|  			   isc_region_t *region, unsigned int reservelen)
 | |
|  {
 | |
| +	/*
 | |
| +	 * Use &removed as a sentinal pointer for duplicate
 | |
| +	 * rdata as rdata.data == NULL is valid.
 | |
| +	 */
 | |
| +	static unsigned char removed;
 | |
|  	struct xrdata  *x;
 | |
|  	unsigned char  *rawbuf;
 | |
|  #if DNS_RDATASET_FIXED
 | |
| @@ -169,6 +174,7 @@
 | |
|  		INSIST(result == ISC_R_SUCCESS);
 | |
|  		dns_rdata_init(&x[i].rdata);
 | |
|  		dns_rdataset_current(rdataset, &x[i].rdata);
 | |
| +		INSIST(x[i].rdata.data != &removed);
 | |
|  #if DNS_RDATASET_FIXED
 | |
|  		x[i].order = i;
 | |
|  #endif
 | |
| @@ -201,8 +207,7 @@
 | |
|  	 */
 | |
|  	for (i = 1; i < nalloc; i++) {
 | |
|  		if (compare_rdata(&x[i-1].rdata, &x[i].rdata) == 0) {
 | |
| -			x[i-1].rdata.data = NULL;
 | |
| -			x[i-1].rdata.length = 0;
 | |
| +			x[i-1].rdata.data = &removed;
 | |
|  #if DNS_RDATASET_FIXED
 | |
|  			/*
 | |
|  			 * Preserve the least order so A, B, A -> A, B
 | |
| @@ -292,7 +297,7 @@
 | |
|  #endif
 | |
|  
 | |
|  	for (i = 0; i < nalloc; i++) {
 | |
| -		if (x[i].rdata.data == NULL)
 | |
| +		if (x[i].rdata.data == &removed)
 | |
|  			continue;
 | |
|  #if DNS_RDATASET_FIXED
 | |
|  		offsettable[x[i].order] = rawbuf - offsetbase;
 |