size_t plen = *len;
kdp_req_t req;
boolean_t ret;
-
+
#if DO_ALIGN
- bcopy((char *)pkt, (char *)rd, sizeof(aligned_pkt));
+ if (plen > sizeof(aligned_pkt)) {
+ printf("kdp_packet bad len %lu\n", plen);
+ return FALSE;
+ }
+ bcopy((char *)pkt, (char *)rd, plen);
#else
rd = (kdp_pkt_t *)pkt;
#endif
}
/* gather some stats for reply */
- kdp_get_dump_info(&rp->type, rp->name, rp->destip, rp->routerip,
- &rp->port);
+ kdp_get_dump_info(rp);
*reply_port = kdp.reply_port;
*len = rp->hdr.len;