mbbsemu / MBBSEmu

The MajorBBS Emulation Project is an Open Source, Cross-Platform emulator for easily running The MajorBBS & Worldgroup Modules
https://www.mbbsemu.com
MIT License
126 stars 14 forks source link

Lords of Cyberspace crashes mbbsemu on Sysop cmd #599

Open Blixxky opened 7 months ago

Blixxky commented 7 months ago

Reproducable by using these commands to enable Sysop permissions (requires SYSOP key by default):

permit 0
permit 1
permit 5
edit p

Then pressing enter or taking other action will crash Mbbsemu

[2023-11-12T11:45:35.0820381-05:00] MBBSEmu.Program [Information] Started MBBSEmu Build #111223-102
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at MBBSEmu.HostProcess.Fsd.FsdUtility.<>c.<BuildAnswerString>b__7_0(FsdFieldSpec field)
   at System.Linq.Enumerable.Sum[TSource,TResult,TAccumulator](IEnumerable`1 source, Func`2 selector)
   at MBBSEmu.HostProcess.Fsd.FsdUtility.BuildAnswerString(FsdStatus fsdStatus)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.FieldVerificationRoutine(SessionBase session, FsdStatus fieldStatus)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.ValidateField(SessionBase session, FsdStatus fsdStatus)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.InFullScreenDisplay(SessionBase session)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.ProcessSessionState(SessionBase session, Dictionary`2 modules)
   at MBBSEmu.HostProcess.MbbsHost.WorkerThread()
Blixxky commented 7 months ago

The same crash occurs when using these Sysop commands to change Tournament settings:

tourney
d
0
any key
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at MBBSEmu.HostProcess.Fsd.FsdUtility.<>c.<BuildAnswerString>b__7_0(FsdFieldSpec field)
   at System.Linq.Enumerable.Sum[TSource,TResult,TAccumulator](IEnumerable`1 source, Func`2 selector)
   at MBBSEmu.HostProcess.Fsd.FsdUtility.BuildAnswerString(FsdStatus fsdStatus)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.FieldVerificationRoutine(SessionBase session, FsdStatus fieldStatus)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.ValidateField(SessionBase session, FsdStatus fsdStatus)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.InFullScreenDisplay(SessionBase session)
   at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.ProcessSessionState(SessionBase session, Dictionary`2 modules)
   at MBBSEmu.HostProcess.MbbsHost.WorkerThread()