From b7dca533e041adcacafb9369892b19db9231937b Mon Sep 17 00:00:00 2001 From: Brian Wellington Date: Fri, 28 Dec 2001 20:59:27 +0000 Subject: [PATCH] avoid calling set_offsets() in dns_name_copy() if possible. --- lib/dns/name.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/dns/name.c b/lib/dns/name.c index ff668ab84a..1b5c893282 100644 --- a/lib/dns/name.c +++ b/lib/dns/name.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: name.c,v 1.130 2001/12/04 01:32:41 bwelling Exp $ */ +/* $Id: name.c,v 1.131 2001/12/28 20:59:27 bwelling Exp $ */ #include @@ -3308,8 +3308,7 @@ dns_name_format(dns_name_t *name, char *cp, unsigned int size) { isc_result_t dns_name_copy(dns_name_t *source, dns_name_t *dest, isc_buffer_t *target) { - unsigned char *ndata, *offsets; - dns_offsets_t odata; + unsigned char *ndata; /* * Make dest a copy of source. @@ -3346,8 +3345,10 @@ dns_name_copy(dns_name_t *source, dns_name_t *dest, isc_buffer_t *target) { dest->attributes = 0; if (dest->labels > 0 && dest->offsets != NULL) { - INIT_OFFSETS(dest, offsets, odata); - set_offsets(dest, offsets, NULL); + if (source->offsets != NULL) + memcpy(dest->offsets, source->offsets, source->labels); + else + set_offsets(dest, dest->offsets, NULL); } isc_buffer_add(target, dest->length);