From 3d09cd2d7ffa0f756d58af19f480737a7c8fdfa0 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 20 Oct 2019 23:05:27 -0700 Subject: [PATCH] Newer MicroVAX and VAXStations: Avoid error path memory leak Initialize Coverity flagged uninitialized variable references. Most/all of these might never have actually occurred with reasonable packet buffer descripter lists, but zero initialized values will never hurt. --- VAX/vax_xs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/VAX/vax_xs.c b/VAX/vax_xs.c index a28430af..39ac72f1 100644 --- a/VAX/vax_xs.c +++ b/VAX/vax_xs.c @@ -304,7 +304,7 @@ void xs_process_receive(CTLR* xs) { uint8 b0, b1, b2, b3; uint32 segb, ba; -int slen, wlen, off; +int slen, wlen, off = 0; t_stat rstatus, wstatus; ETH_ITEM* item = 0; int no_buffers = xs->var->csr0 & CSR0_MISS; @@ -458,6 +458,7 @@ t_stat rstatus, wstatus; /* sim_debug(DBG_TRC, xs->dev, "xs_process_transmit()\n"); */ +off = giant = runt = 0; for (;;) { /* get next transmit buffer */ @@ -734,8 +735,10 @@ if (tptr == NULL) strcpy(tptr, cptr); xs->var->etherface = (ETH_DEV *) malloc(sizeof(ETH_DEV)); -if (!xs->var->etherface) +if (!xs->var->etherface) { + free(tptr); return SCPE_MEM; + } status = eth_open(xs->var->etherface, cptr, xs->dev, DBG_ETH); if (status != SCPE_OK) {