From 61c2493b7da8ad7c10f777be35b9c49e6be07437 Mon Sep 17 00:00:00 2001 From: Conner Fromknecht Date: Thu, 28 Jun 2018 19:04:55 -0700 Subject: [PATCH] lnwire/query_short_chan_ids: short circuit if 0 sids In this commit, we alter the behavior of the regular short channel id encoding, such that it returns a nil slice if the decoded number of elements is 0. This is done so that it matches the behavior of the zlib decompression, allowing us to test both in using the same corpus. --- lnwire/query_short_chan_ids.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 {