-
Rob Swindell authored
Looking into potential causes of issue #843, I found several instances where we call getuserdat() without checking the return value and restoring the useron.number to the current user number upon error: getuserdat() zeroes out the user struct/number upon error, a bad API choice made 23 years ago. Replace those instances with calls to sbbs_t::getuseron() which logs any open/lock/read failures of the user.tab and does not modify/zero-out the sbbs_t::useron struct upon error.
Rob Swindell authoredLooking into potential causes of issue #843, I found several instances where we call getuserdat() without checking the return value and restoring the useron.number to the current user number upon error: getuserdat() zeroes out the user struct/number upon error, a bad API choice made 23 years ago. Replace those instances with calls to sbbs_t::getuseron() which logs any open/lock/read failures of the user.tab and does not modify/zero-out the sbbs_t::useron struct upon error.