diff --git a/PDP11/pdp11_xq.c b/PDP11/pdp11_xq.c index e2bbc058..b9ac5182 100644 --- a/PDP11/pdp11_xq.c +++ b/PDP11/pdp11_xq.c @@ -1940,7 +1940,9 @@ t_stat xq_process_turbo_xbdl(CTLR* xq) xq->var->xring[i].tmd2 = XQ_TMD2_RON | XQ_TMD2_TON; } - Map_ReadW (tdra+(uint32)(((char *)(&xq->var->xring[xq->var->tbindx].tmd3))-((char *)&xq->var->xring)), sizeof(xq->var->xring[xq->var->tbindx].tmd3), (uint16 *)&xq->var->xring[xq->var->tbindx].tmd3); + status = Map_ReadW (tdra+(uint32)(((char *)(&xq->var->xring[xq->var->tbindx].tmd3))-((char *)&xq->var->xring)), sizeof(xq->var->xring[xq->var->tbindx].tmd3), (uint16 *)&xq->var->xring[xq->var->tbindx].tmd3); + if (status != SCPE_OK) + return xq_nxm_error(xq); if (xq->var->xring[xq->var->tbindx].tmd3 & XQ_TMD3_OWN) xq->var->xring[i].tmd2 |= XQ_TMD2_EOR; @@ -2024,7 +2026,7 @@ t_stat xq_process_loopback(CTLR* xq, ETH_PACK* pack) ++xq->var->stats.loop; if (DBG_PCK & xq->dev->dctrl) - eth_packet_trace_ex(xq->var->etherface, response.msg, response.len, ((function == 1) ? "xq-loopbackreply" : "xq-loopbackforward"), DBG_DAT & xq->dev->dctrl, DBG_PCK); + eth_packet_trace_ex(xq->var->etherface, response.msg, response.len, "xq-loopbackforward", DBG_DAT & xq->dev->dctrl, DBG_PCK); return status; } diff --git a/PDP11/pdp11_xu.c b/PDP11/pdp11_xu.c index 38cc86e6..8343ce5a 100644 --- a/PDP11/pdp11_xu.c +++ b/PDP11/pdp11_xu.c @@ -593,7 +593,7 @@ t_stat xu_process_loopback(CTLR* xu, ETH_PACK* pack) ++xu->var->stats.loopf; if (DBG_PCK & xu->dev->dctrl) - eth_packet_trace_ex(xu->var->etherface, response.msg, response.len, ((function == 1) ? "xu-loopbackreply" : "xu-loopbackforward"), DBG_DAT & xu->dev->dctrl, DBG_PCK); + eth_packet_trace_ex(xu->var->etherface, response.msg, response.len, "xu-loopbackforward", DBG_DAT & xu->dev->dctrl, DBG_PCK); return status; } diff --git a/sim_ether.c b/sim_ether.c index 16d383db..d2d0ae0c 100644 --- a/sim_ether.c +++ b/sim_ether.c @@ -3116,6 +3116,9 @@ int write_queue_size = 1; /* make sure device exists */ if ((!dev) || (dev->eth_api == ETH_API_NONE)) return SCPE_UNATT; +if (packet->len > sizeof (packet->msg)) /* packet ovesized? */ + return SCPE_IERR; /* that's no good! */ + /* Get a buffer */ pthread_mutex_lock (&dev->writer_lock); if (NULL != (request = dev->write_buffers))