Ensure NULL peer->dstadr is not accessed in orphan parent selection.
bk: 4edcfa5cYMFgVyVcCau7pieuT-1xDA
+---
+
+* [Bug 2082] 3-char refid sent by ntpd 4.2.6p5-RC2 ends with extra dot.
+* Ensure NULL peer->dstadr is not accessed in orphan parent selection.
+
---
(4.2.6p5-RC2) 2011/11/30 Released by Harlan Stenn <stenn@ntp.org>
return;
iptr = (char *)&refid;
iplim = iptr + sizeof(refid);
- for (; optr < oplim && iptr < iplim; iptr++, optr++)
+ for ( ; optr < oplim && iptr < iplim && '\0' != *iptr;
+ iptr++, optr++)
if (isprint(*iptr))
*optr = *iptr;
else
u_int32 localmet;
u_int32 peermet;
- localmet = ntohl(peer->dstadr->addr_refid);
+ if (peer->dstadr != NULL)
+ localmet = ntohl(peer->dstadr->addr_refid);
+ else
+ localmet = U_INT32_MAX;
peermet = ntohl(addr2refid(&peer->srcadr));
if (peermet < localmet &&
peermet < orphmet) {