From 488b91a62cbc17d0e8561392d2c46378e60b86c4 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 8 Sep 2018 13:58:20 -0700 Subject: [PATCH] TMXR: Avoid potential divide by 0 when setting speed without a speed factor --- sim_tmxr.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sim_tmxr.c b/sim_tmxr.c index 0a8eb6a8..b78a5f98 100644 --- a/sim_tmxr.c +++ b/sim_tmxr.c @@ -2538,7 +2538,8 @@ if (*cptr == '*') { if (r != SCPE_OK) return r; lp->bpsfactor = bpsfactor; - if (speed == cptr) { /* just changing bps factor? */ + if (!(lp->serport) && /* Not a serial port */ + (speed == cptr)) { /* AND just changing bps factor? */ char speedbps[16]; sprintf (speedbps, "%d", lp->rxbps); @@ -2548,8 +2549,9 @@ if (*cptr == '*') { } } lp->rxbps = rxbps; /* use supplied speed */ -if ((lp->serport) && (lp->bpsfactor != 0.0)) - lp->bpsfactor = 1.0; /* Ignore bps factor for serial ports */ +if ((lp->bpsfactor == 0.0) || /* factor unspecified */ + (lp->serport)) /* OR serial port */ + lp->bpsfactor = 1.0; /* No bps factor */ lp->rxdeltausecs = (uint32)(_tmln_speed_delta (speed) / lp->bpsfactor); lp->rxnexttime = 0.0; uptr = lp->uptr;