lnwire: don't attempt to decode an empty/nil signature
This commit is contained in:
parent
4bde4c1c26
commit
15f812b10f
@ -17,6 +17,10 @@ type Sig [64]byte
|
|||||||
func NewSigFromRawSignature(sig []byte) (Sig, error) {
|
func NewSigFromRawSignature(sig []byte) (Sig, error) {
|
||||||
var b Sig
|
var b Sig
|
||||||
|
|
||||||
|
if len(sig) == 0 {
|
||||||
|
return b, fmt.Errorf("cannot decode empty signature")
|
||||||
|
}
|
||||||
|
|
||||||
// Extract lengths of R and S. The DER representation is laid out as
|
// Extract lengths of R and S. The DER representation is laid out as
|
||||||
// 0x30 <length> 0x02 <length r> r 0x02 <length s> s
|
// 0x30 <length> 0x02 <length r> r 0x02 <length s> s
|
||||||
// which means the length of R is the 4th byte and the length of S
|
// which means the length of R is the 4th byte and the length of S
|
||||||
@ -61,6 +65,10 @@ func NewSigFromRawSignature(sig []byte) (Sig, error) {
|
|||||||
// NewSigFromSignature creates a new signature as used on the wire, from an
|
// NewSigFromSignature creates a new signature as used on the wire, from an
|
||||||
// existing btcec.Signature.
|
// existing btcec.Signature.
|
||||||
func NewSigFromSignature(e *btcec.Signature) (Sig, error) {
|
func NewSigFromSignature(e *btcec.Signature) (Sig, error) {
|
||||||
|
if e == nil {
|
||||||
|
return Sig{}, fmt.Errorf("cannot decode empty signature")
|
||||||
|
}
|
||||||
|
|
||||||
// Serialize the signature with all the checks that entails.
|
// Serialize the signature with all the checks that entails.
|
||||||
return NewSigFromRawSignature(e.Serialize())
|
return NewSigFromRawSignature(e.Serialize())
|
||||||
}
|
}
|
||||||
|
@ -2186,7 +2186,6 @@ func (r *rpcServer) sendPayment(stream *paymentStream) error {
|
|||||||
PaymentRoute: marshallRoute(route),
|
PaymentRoute: marshallRoute(route),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
rpcsLog.Infof("sender rrrrr: ", err)
|
|
||||||
errChan <- err
|
errChan <- err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user