gossip_control: when searching for a txout, make sure it's not spent!

There's no reason for the db to ever return non-NULL if it's spent.  And there's
only one caller, for which that is definitely true.

Suggested-by: @cdecker
Fixes: #1934
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2018-09-21 10:01:30 +09:30 committed by Christian Decker
parent 24c386c086
commit 0855422110
2 changed files with 2 additions and 3 deletions

View File

@ -4,7 +4,6 @@ from utils import wait_for, TIMEOUT, only_one
import json
import logging
import os
import pytest
import struct
import subprocess
import time
@ -865,7 +864,6 @@ def test_gossipwith(node_factory):
assert num_msgs == 5
@pytest.mark.xfail(strict=True)
def test_gossip_notices_close(node_factory, bitcoind):
# We want IO logging so we can replay a channel_announce to l1.
l1 = node_factory.get_node(options={'log-level': 'io'})

View File

@ -2139,7 +2139,8 @@ struct outpoint *wallet_outpoint_for_scid(struct wallet *w, tal_t *ctx,
"FROM utxoset "
"WHERE blockheight = ?"
" AND txindex = ?"
" AND outnum = ?");
" AND outnum = ?"
" AND spendheight IS NULL");
sqlite3_bind_int(stmt, 1, short_channel_id_blocknum(scid));
sqlite3_bind_int(stmt, 2, short_channel_id_txnum(scid));
sqlite3_bind_int(stmt, 3, short_channel_id_outnum(scid));