Skip to content
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

Fix NullReferenceException in AlignAssignmentStatement rule when CheckHashtable is enabled #838

Conversation

@bergmeister
Copy link
Collaborator

bergmeister commented Dec 3, 2017

Fix #828
$MyObj | % { @{$_.Name = $_.Value} }' produces a NullReferencException when the PSAlignAssignmentStatement setting CheckHashtable is turned on
The reason for it was because the previous implementation expected the key in a hashtable to not contain more than 1 token expression. A lazy fix would have been to use a continue statement in the GetExtents function instead of returning null. However, the existing algorithm was improved to deal with keys containing expressions consisting of more than 1 token. The fix consists basically in traversing further until the equal statement is reached.

bergmeister added 2 commits Dec 3, 2017
…ue} }' when the PSAlignAssignmentStatement setting CheckHashtable was turned on.

The reason for it was because the previous implementation expected the key in a hashtable to not contain more than 1 token expression.
…until the keyStartOffset and then search for the equal token.

Works mainly fine except that I get an off by one error, which leads to a false positive warning when analysing the settings file provided by issue 828.
Copy link
Member

JamesWTruher left a comment

is there a test for this?

@bergmeister bergmeister reopened this Jan 20, 2018
@bergmeister
Copy link
Collaborator Author

bergmeister commented Jan 20, 2018

@JamesWTruher Although the issue occured only in a very special scenario and enviroment, I added a test for it. But the underlying problem in the code was just that a function was returning null to something that was IEnumerable.

@JamesWTruher
Copy link
Member

JamesWTruher commented Jan 21, 2018

thanks - even though it's an unlikely error, I would rather have an additional test, just from a process perspective.

@JamesWTruher JamesWTruher merged commit 26f623a into PowerShell:development Jan 21, 2018
2 checks passed
2 checks passed
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
license/cla Contributor License Agreement is signed.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

2 participants
You can’t perform that action at this time.