|
Message-Id: <1383630237-2700-1-git-send-email-mforney@mforney.org> Date: Mon, 4 Nov 2013 21:43:57 -0800 From: Michael Forney <mforney@...rney.org> To: musl@...ts.openwall.com Subject: [PATCH] Fix dn_expand pointer following --- While looking over the dn_{comp,expand} functions, I noticed that this looked wrong in dn_expand. http://www.ietf.org/rfc/rfc1035.txt says that if the first two bits are 1s (i.e., *p & 0xc0), then the remaining 14 bits specify the offset. I haven't actually seen this manifest anywhere, and I have only tested up to compilation. src/network/dn_expand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/dn_expand.c b/src/network/dn_expand.c index 4e02e3d..96adf37 100644 --- a/src/network/dn_expand.c +++ b/src/network/dn_expand.c @@ -10,7 +10,7 @@ int __dn_expand(const unsigned char *base, const unsigned char *end, const unsig for (;;) { if (*p & 0xc0) { if (p+1==end) return -1; - j = (p[0]&1) | p[1]; + j = ((p[0] & 0x3f) << 8) | p[1]; if (len < 0) len = p+2-src; if (j >= end-base) return -1; p = base+j; -- 1.8.4.2
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.