Merge pull request #3774 from bhandras/hotfix

lnwire: fixing buffer size and cleaning up uint16/32 conversion
This commit is contained in:
Conner Fromknecht 2019-12-05 17:03:16 -08:00 committed by GitHub
commit d230cf89b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -56,11 +56,11 @@ func NewChanIDFromOutPoint(op *wire.OutPoint) ChannelID {
// ChannelID. To do this, we expect the cid parameter to contain the txid // ChannelID. To do this, we expect the cid parameter to contain the txid
// unaltered and the outputIndex to be the output index // unaltered and the outputIndex to be the output index
func xorTxid(cid *ChannelID, outputIndex uint16) { func xorTxid(cid *ChannelID, outputIndex uint16) {
var buf [32]byte var buf [2]byte
binary.BigEndian.PutUint16(buf[30:], outputIndex) binary.BigEndian.PutUint16(buf[:], outputIndex)
cid[30] = cid[30] ^ buf[30] cid[30] ^= buf[0]
cid[31] = cid[31] ^ buf[31] cid[31] ^= buf[1]
} }
// GenPossibleOutPoints generates all the possible outputs given a channel ID. // GenPossibleOutPoints generates all the possible outputs given a channel ID.
@ -69,13 +69,13 @@ func xorTxid(cid *ChannelID, outputIndex uint16) {
// mapping from channelID back to OutPoint. // mapping from channelID back to OutPoint.
func (c *ChannelID) GenPossibleOutPoints() [MaxFundingTxOutputs]wire.OutPoint { func (c *ChannelID) GenPossibleOutPoints() [MaxFundingTxOutputs]wire.OutPoint {
var possiblePoints [MaxFundingTxOutputs]wire.OutPoint var possiblePoints [MaxFundingTxOutputs]wire.OutPoint
for i := uint32(0); i < MaxFundingTxOutputs; i++ { for i := uint16(0); i < MaxFundingTxOutputs; i++ {
cidCopy := *c cidCopy := *c
xorTxid(&cidCopy, uint16(i)) xorTxid(&cidCopy, i)
possiblePoints[i] = wire.OutPoint{ possiblePoints[i] = wire.OutPoint{
Hash: chainhash.Hash(cidCopy), Hash: chainhash.Hash(cidCopy),
Index: i, Index: uint32(i),
} }
} }