s = htons(RR->rdlength);
memcpy(buf + off, &s, sizeof(s));
off += sizeof(s);
- memcpy(buf + off, &(RR->rdata), RR->rdlength);
+ memcpy(buf + off, RR->rdata, RR->rdlength);
off += RR->rdlength;
assert(off <= sz);
return off;
static int
rfc1035QueryUnpack(const char *buf, size_t sz, unsigned int *off, rfc1035_query * query)
{
- unsigned short s;
+ uint16_t s;
if (rfc1035NameUnpack(buf, sz, off, nullptr, query->name, RFC1035_MAXHOSTNAMESZ, 0)) {
RFC1035_UNPACK_DEBUG;
memset(query, '\0', sizeof(*query));
memset(query, '\0', sizeof(*query));
return 1;
}
- memcpy(&s, buf + *off, 2);
- *off += 2;
+ memcpy(&s, buf + *off, sizeof(s));
+ *off += sizeof(s);
query->qtype = ntohs(s);
- memcpy(&s, buf + *off, 2);
- *off += 2;
+ memcpy(&s, buf + *off, sizeof(s));
+ *off += sizeof(s);
query->qclass = ntohs(s);
return 0;
}