diff --git a/lnwire/lnwire_test.go b/lnwire/lnwire_test.go index f1311c62..8a1e82f6 100644 --- a/lnwire/lnwire_test.go +++ b/lnwire/lnwire_test.go @@ -668,11 +668,9 @@ func TestLightningWireProtocol(t *testing.T) { numChanIDs := rand.Int31n(5000) - req.ShortChanIDs = make([]ShortChannelID, numChanIDs) for i := int32(0); i < numChanIDs; i++ { - req.ShortChanIDs[i] = NewShortChanIDFromInt( - uint64(r.Int63()), - ) + req.ShortChanIDs = append(req.ShortChanIDs, + NewShortChanIDFromInt(uint64(r.Int63()))) } v[0] = reflect.ValueOf(req) diff --git a/lnwire/query_short_chan_ids.go b/lnwire/query_short_chan_ids.go index fd959c43..401aa118 100644 --- a/lnwire/query_short_chan_ids.go +++ b/lnwire/query_short_chan_ids.go @@ -146,10 +146,13 @@ func decodeShortChanIDs(r io.Reader) (ShortChanIDEncoding, []ShortChannelID, err // compute the number of bytes encoded based on the size of the // query body. numShortChanIDs := len(queryBody) / 8 - shortChanIDs := make([]ShortChannelID, numShortChanIDs) + if numShortChanIDs == 0 { + return encodingType, nil, nil + } // Finally, we'll read out the exact number of short channel // ID's to conclude our parsing. + shortChanIDs := make([]ShortChannelID, numShortChanIDs) bodyReader := bytes.NewReader(queryBody) for i := 0; i < numShortChanIDs; i++ { if err := readElements(bodyReader, &shortChanIDs[i]); err != nil {