-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prevent panic caused by nil session recorder #10792
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
rosstimothy
force-pushed
the
tross/fix_audit_writer_panic
branch
from
March 3, 2022 15:38
28d7b4c
to
317b9d0
Compare
gabrielcorado
approved these changes
Mar 3, 2022
smallinsky
approved these changes
Mar 4, 2022
rosstimothy
added a commit
that referenced
this pull request
Mar 4, 2022
* Prevent panic caused by nil session recorder In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
Merged
rosstimothy
added a commit
that referenced
this pull request
Mar 4, 2022
* Prevent panic caused by nil session recorder In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
Merged
rosstimothy
added a commit
that referenced
this pull request
Mar 4, 2022
* Prevent panic caused by nil session recorder In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
Merged
rosstimothy
added a commit
that referenced
this pull request
Mar 7, 2022
* Prevent panic caused by nil session recorder In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
rosstimothy
added a commit
that referenced
this pull request
Mar 8, 2022
* Prevent panic caused by nil session recorder In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
rosstimothy
added a commit
that referenced
this pull request
Mar 10, 2022
In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
rosstimothy
added a commit
that referenced
this pull request
Mar 10, 2022
* Prevent panic caused by nil session recorder In startInteractive the session recorder was being assigned the return value of events.NewAuditWriter, even if it returned an error. This causes problems because the nil *events.AuditWriter that is returned in this case ends up being stored in recorder as a non-nil events.StreamWriter. So when the session tries to close the check on recorder != nil is mistakenly true and recorder.Close is called on a nil *events.AuditWriter - which results in a panic.
Closed
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In
startInteractive
the session recorder was being assigned thereturn value of
events.NewAuditWriter
, even if it returned anerror. This causes problems because the nil
*events.AuditWriter
that is returned in this case ends up being stored in recorder which
becomes a non-nil
events.StreamWriter
. So when the session triesto close the check on recorder != nil is mistakenly true and recorder.Close
is called on a nil *
events.AuditWriter
- which results in a panic.The same path in
startExec
handled this correctly, by assigningthe return value to the recorder only after checking the error. This
moves the common logic to create a session recorder used by
startExec
and
startInteractive
intonewRecorder
. Both functions correctly checkthe return value from
newRecorder
and only assign the session recorderin the event the returned
err == nil
.