fix multi.Errors panic on nil append #53
Merged
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.
This extends the nil check for multi.Errors to the Append function to make sure
nil errors do not end up in the slice, causing a panic when the error string is
generated.
I ran into this panic with the
QueryBlockByTxID
function. The QueryBlock* series of functions lack a nil check before appending errors:fabric-sdk-go/pkg/fab/channel/ledger.go
Lines 91 to 94 in be7b275
fabric-sdk-go/pkg/fab/channel/ledger.go
Lines 109 to 112 in be7b275
fabric-sdk-go/pkg/fab/channel/ledger.go
Lines 138 to 141 in be7b275
The tests for these functions don't seem to be capable of handling these edge cases, but I added a test for this specific case to the
multi
test suite. This test fails on the current master (and panics when printing the failure).If it is preferred, I can just add some nil checks on those functions, but this seemed like a simpler, more universal solution and in the spirit of how the
New
function works:fabric-sdk-go/pkg/common/errors/multi/multi.go
Lines 24 to 28 in be7b275