Applies to: Centrify DirectAudit 2.0.0 on Linux platforms
Problem:
When the playback of the session is executed, the playback will show an "Unexpected error" after the command that corrupted the bash display.
An error similar to the one below is shown:
<------- Begin error details ------>
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentNullException: Buffer cannot be null.
Parameter name: buffer
at System.IO.MemoryStream..ctor(Byte[] buffer, Boolean writable)
at System.IO.MemoryStream..ctor(Byte[] buffer)
at Poderosa.CentrifyTerminal.RestoreSnapshot(Byte[] snapshot)
at Centrify.DirectAudit.Common.Terminal.TerminalEmulator.RestoreSnapshot(Byte[] snapshot)
at Centrify.DirectAudit.SessionPlayer.Logic.Unix.RenderEngine.Process(Frame frame)
at Centrify.DirectAudit.SessionPlayer.ViewModel.Screen.Session_PlayingProgressUpdated(Object sender, PlayingProgressUpdatedEventArgs e)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Centrify.DirectAudit.SessionPlayer.ViewModel.ViewModelEvent.SubscriberCallback.Invoke(Object sender, EventArgs args)
at Centrify.DirectAudit.SessionPlayer.ViewModel.ViewModelEvent.Invoke(Object sender, EventArgs args)
at Centrify.DirectAudit.SessionPlayer.Logic.Session.<.ctor>b__2(Object sender, PlayingProgressUpdatedEventArgs e)
at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
<---end error-->
Cause:
A linux bash session is being audited and when a command is executed on a binary file, the Bash session display becomes corrupted.
Commands entered in this state will execute correctly.
Playback of a Linux session where the shell was corrupted causes an exception because the emulator(VT100) cannot recognize the file encode format, so the emulator serializer will corrupt the data.
Workaround:
Upgrade to Centrify DirectAudit 2.0.2-118 or higher