From 182b6b7b46c48e2226e875db7b27a8491792b4e6 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Thu, 26 Apr 2007 07:55:51 +0000 Subject: [PATCH] lint faster, lint fix and define. git-svn-id: file:///svn/unbound/trunk@260 be551aaa-1e26-0410-a405-d3ace91eadb9 --- Makefile.in | 13 +++++++------ doc/Changelog | 3 +++ util/data/msgparse.h | 2 ++ util/data/msgreply.c | 6 +++--- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Makefile.in b/Makefile.in index 6a3208e45..7b9eff8b2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -126,12 +126,13 @@ realclean: clean rm -f util/configlexer.c util/configparser.c util/configparser.h rm -f Makefile -lint: - $Qfor i in $(filter-out util/configparser.c,$(filter-out util/configlexer.c,$(sort $(ALL_SRC)))); do \ - echo lint $$i; \ - $(LINT) $(LINTFLAGS) -I. -I$(srcdir) -I$(ldnsdir)/include $(srcdir)/$$i ; \ - if [ $$? -ne 0 ] ; then exit 1 ; fi ; \ - done +$(BUILD)%.lint: $(srcdir)/%.c + $(INFO) Lint $< + @if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi + $Q$(LINT) $(LINTFLAGS) -I. -I$(srcdir) -I$(ldnsdir)/include $< + $Qtouch $@ + +lint: $(addprefix $(BUILD),$(filter-out util/configparser.lint,$(filter-out util/configlexer.lint,$(sort $(ALL_SRC:.c=.lint))))) tags: $(srcdir)/*.[ch] $(srcdir)/*/*.[ch] ctags -f $(srcdir)/tags $(srcdir)/*.[ch] $(srcdir)/*/*.[ch] diff --git a/doc/Changelog b/doc/Changelog index c7fea50d4..3f536e4cf 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,8 @@ 26 April 2007: Wouter - floating point exception fix in lock-verify. + - lint uses make dependency + - fixup lint in dname owner domain name compression code. + - define for offset range that can be compressed to. 25 April 2007: Wouter - prettier code; parse_rrset->type kept in host byte order. diff --git a/util/data/msgparse.h b/util/data/msgparse.h index fac9ab329..93b072cee 100644 --- a/util/data/msgparse.h +++ b/util/data/msgparse.h @@ -183,6 +183,8 @@ struct rr_parse { /** error codes, extended with EDNS, so > 15. */ #define EDNS_RCODE_BADVERS 16 /** bad EDNS version */ +/** largest valid compression offset */ +#define PTR_MAX_OFFSET 0x3fff /** * EDNS data storage diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 9b49b0427..eb9cb46a6 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -649,7 +649,7 @@ compress_tree_store(struct compress_tree_node** tree, uint8_t* dname, if(closest) uplabs = labs - closest->labs; log_assert(uplabs >= 0); while(uplabs--) { - if(offset > 0x3fff) { /* largest valid compr. offset */ + if(offset > PTR_MAX_OFFSET) { if(lastparentptr) *lastparentptr = closest; return 1; /* compression pointer no longer useful */ @@ -713,7 +713,7 @@ bakedname(int dosig, struct compress_tree_node** tree, size_t* offset, struct compress_tree_node* p; int labs = dname_count_labels(rk->dname); p = compress_tree_lookup(*tree, rk->dname, labs); - if(p) { + if(p && p->offset <= PTR_MAX_OFFSET) { /* compress it */ int labcopy = labs - p->labs; size_t len = 0; @@ -735,7 +735,7 @@ bakedname(int dosig, struct compress_tree_node** tree, size_t* offset, from += lablen; } /* insert compression ptr */ - ptr = 0xc000 | p->offset; + ptr = (uint16_t)(0xc000 | p->offset); ptr = htons(ptr); memmove(dat, &ptr, sizeof(ptr)); len += sizeof(ptr); -- 2.47.2