summaryrefslogtreecommitdiff
path: root/56/c82fb8c417d37ed960a2a6e0ff1a2da1a02ddf
blob: f7bd4a7349974177939fc1a0dee105d1acc27d75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
	helo=mx.sourceforge.net)
	by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <toshi@peernova.com>) id 1WqAPD-0006Yz-Od
	for bitcoin-development@lists.sourceforge.net;
	Fri, 30 May 2014 00:10:43 +0000
Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of peernova.com
	designates 209.85.220.179 as permitted sender)
	client-ip=209.85.220.179; envelope-from=toshi@peernova.com;
	helo=mail-vc0-f179.google.com; 
Received: from mail-vc0-f179.google.com ([209.85.220.179])
	by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1WqAPC-0005Ss-Du
	for bitcoin-development@lists.sourceforge.net;
	Fri, 30 May 2014 00:10:43 +0000
Received: by mail-vc0-f179.google.com with SMTP id im17so1263598vcb.38
	for <bitcoin-development@lists.sourceforge.net>;
	Thu, 29 May 2014 17:10:36 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:date
	:message-id:subject:from:to:cc:content-type;
	bh=R1kAfYm85zTvx/nXT48rmDCOORdaZ7mtkwWPflZrcQw=;
	b=YJ0iuLNJq6rGsnJGQ7hJhsixQHcsZgyqMCfBKhpG9JzYdebbqGLMamuEWnJ1xSV3lr
	6ds+STHGx7TRdp3TUr/ISXEgobGaJ4D8npEwen9hMKhtyO4CZFotov3dkxb+KyOujzo+
	9z0IBrPzVYLe9Sk3wfU4RBeohlWqXbLyM6AGsIzZobGz2AAwdwPspf20/fLg4QU7YDW0
	JEygq6GeWAy+CpcJlsT+0sXEgjaDNcQgTlnYCDNoP6M00n96j2/OnhCOA7q4b7ZbeKy0
	+XU07AM//h6wxbW3q6UqR8nBMBge+679zcmAPs8ue2a4gR6nUCN0RLeAu+l/lVvN+KAX
	143g==
X-Gm-Message-State: ALoCoQlamdpjCDQOpB1ZlH175WBmGL6VZGMIl+sunLRYUckNBZlEXW8gJumSgCd5WdUxM7gv8BD5
MIME-Version: 1.0
X-Received: by 10.52.53.69 with SMTP id z5mr8854368vdo.42.1401408636706; Thu,
	29 May 2014 17:10:36 -0700 (PDT)
Received: by 10.52.34.146 with HTTP; Thu, 29 May 2014 17:10:36 -0700 (PDT)
In-Reply-To: <CACh7GpHqCK=FFOO6C=mdHnqfCu5uZ34jf5ez6VDaSHimYnj5AA@mail.gmail.com>
References: <CANFXpYMC2hYzFx5fPkqTv2LiCrtDny3yUV5u20ckK56zVjSpGA@mail.gmail.com>
	<CACh7GpHqCK=FFOO6C=mdHnqfCu5uZ34jf5ez6VDaSHimYnj5AA@mail.gmail.com>
Date: Thu, 29 May 2014 17:10:36 -0700
Message-ID: <CANFXpYPw8dsein-LoJBrctgVm2u1yrFDNF1jTyWTM2RaX2tPuQ@mail.gmail.com>
From: Toshi Morita <toshi@peernova.com>
To: Mark Friedenbach <mark@monetize.io>
Content-Type: multipart/alternative; boundary=089e01183caef9f43604fa92dfde
X-Spam-Score: -0.5 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
X-Headers-End: 1WqAPC-0005Ss-Du
Cc: bitcoin-development <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] bitcoind minor bug in wallet and possible
	fix
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Fri, 30 May 2014 00:10:43 -0000

--089e01183caef9f43604fa92dfde
Content-Type: text/plain; charset=UTF-8

Ok. Done.

Toshi



On Thu, May 29, 2014 at 5:06 PM, Mark Friedenbach <mark@monetize.io> wrote:

> Please make a pull request on github. It'll likely get merged quickly.
> On May 29, 2014 5:04 PM, "Toshi Morita" <toshi@peernova.com> wrote:
>
>> I ran bitcoind under valgrind and found a place where it references an
>> uninitialized variable in some cases:
>>
>> tm@tm-VirtualBox:~/bitcoind/bitcoin/src$ valgrind ./bitcoind
>> ==2337== Memcheck, a memory error detector
>> ==2337== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
>> ==2337== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
>> ==2337== Command: ./bitcoind
>> ==2337==
>> ==2337== Conditional jump or move depends on uninitialised value(s)
>> ==2337==    at 0x319176: CWallet::LoadKeyMetadata(CPubKey const&,
>> CKeyMetadata const&) (wallet.cpp:110)
>> ==2337==    by 0x33645A: ReadKeyValue(CWallet*, CDataStream&,
>> CDataStream&, CWalletScanState&, std::string&, std::string&)
>> (walletdb.cpp:509)
>> ==2337==    by 0x3374F0: CWalletDB::LoadWallet(CWallet*)
>> (walletdb.cpp:623)
>> ==2337==    by 0x3218FD: CWallet::LoadWallet(bool&) (wallet.cpp:1485)
>> ==2337==    by 0x157F16: AppInit2(boost::thread_group&) (init.cpp:958)
>> ==2337==    by 0x140142: AppInit(int, char**) (bitcoind.cpp:143)
>> ==2337==    by 0x13649E: main (bitcoind.cpp:180)
>> ==2337==
>>
>> The bug occurs here because nTimeFirstKey is not initialized when the
>> wallet is instantiated:
>>
>> wallet.cpp:63
>>     if (!nTimeFirstKey || nCreationTime < nTimeFirstKey)
>>         nTimeFirstKey = nCreationTime;
>>
>>
>> I fixed it in my fork:
>>
>> diff --git a/src/wallet.h b/src/wallet.h
>> index 9607415..b78045f 100644
>> --- a/src/wallet.h
>> +++ b/src/wallet.h
>> @@ -163,6 +163,7 @@ public:
>>          nOrderPosNext = 0;
>>          nNextResend = 0;
>>          nLastResend = 0;
>> +        nTimeFirstKey = 0;
>>      }
>>
>> If this fix is ok please pull from my GitHub fork; username on GitHub is
>> tm314159.
>>
>> Toshi
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Time is money. Stop wasting it! Get your web API in 5 minutes.
>> www.restlet.com/download
>> http://p.sf.net/sfu/restlet
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>
>>

--089e01183caef9f43604fa92dfde
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Ok. Done.<div><br></div><div>Toshi</div><div><br></div></d=
iv><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Thu, Ma=
y 29, 2014 at 5:06 PM, Mark Friedenbach <span dir=3D"ltr">&lt;<a href=3D"ma=
ilto:mark@monetize.io" target=3D"_blank">mark@monetize.io</a>&gt;</span> wr=
ote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><p dir=3D"ltr">Please make a pull request on=
 github. It&#39;ll likely get merged quickly.</p>
<div class=3D"gmail_quote"><div><div class=3D"h5">On May 29, 2014 5:04 PM, =
&quot;Toshi Morita&quot; &lt;<a href=3D"mailto:toshi@peernova.com" target=
=3D"_blank">toshi@peernova.com</a>&gt; wrote:<br type=3D"attribution"></div=
></div>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div><div class=3D"h5">
<div dir=3D"ltr"><div><div>I ran bitcoind under valgrind and found a place =
where it references an uninitialized variable in some cases:<br><br>tm@tm-V=
irtualBox:~/bitcoind/bitcoin/src$ valgrind ./bitcoind<br>=3D=3D2337=3D=3D M=
emcheck, a memory error detector<br>


=3D=3D2337=3D=3D Copyright (C) 2002-2012, and GNU GPL&#39;d, by Julian Sewa=
rd et al.<br>=3D=3D2337=3D=3D Using Valgrind-3.8.1 and LibVEX; rerun with -=
h for copyright info<br>=3D=3D2337=3D=3D Command: ./bitcoind<br>=3D=3D2337=
=3D=3D<br>=3D=3D2337=3D=3D Conditional jump or move depends on uninitialise=
d value(s)<br>


=3D=3D2337=3D=3D=C2=A0=C2=A0=C2=A0 at 0x319176: CWallet::LoadKeyMetadata(CP=
ubKey const&amp;, CKeyMetadata const&amp;) (wallet.cpp:110)<br>=3D=3D2337=
=3D=3D=C2=A0=C2=A0=C2=A0 by 0x33645A: ReadKeyValue(CWallet*, CDataStream&am=
p;, CDataStream&amp;, CWalletScanState&amp;, std::string&amp;, std::string&=
amp;) (walletdb.cpp:509)<br>


=3D=3D2337=3D=3D=C2=A0=C2=A0=C2=A0 by 0x3374F0: CWalletDB::LoadWallet(CWall=
et*) (walletdb.cpp:623)<br>=3D=3D2337=3D=3D=C2=A0=C2=A0=C2=A0 by 0x3218FD: =
CWallet::LoadWallet(bool&amp;) (wallet.cpp:1485)<br>=3D=3D2337=3D=3D=C2=A0=
=C2=A0=C2=A0 by 0x157F16: AppInit2(boost::thread_group&amp;) (init.cpp:958)=
<br>


=3D=3D2337=3D=3D=C2=A0=C2=A0=C2=A0 by 0x140142: AppInit(int, char**) (bitco=
ind.cpp:143)<br>=3D=3D2337=3D=3D=C2=A0=C2=A0=C2=A0 by 0x13649E: main (bitco=
ind.cpp:180)<br>=3D=3D2337=3D=3D<br><br></div>The bug occurs here because n=
TimeFirstKey is not initialized when the wallet is instantiated:<br>


<br>wallet.cpp:63<br>=C2=A0=C2=A0=C2=A0 if (!nTimeFirstKey || nCreationTime=
 &lt; nTimeFirstKey)<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nTimeFir=
stKey =3D nCreationTime;<br><br><br></div><div>I fixed it in my fork:<br><b=
r>diff --git a/src/wallet.h b/src/wallet.h<br>index 9607415..b78045f 100644=
<br>


--- a/src/wallet.h<br>+++ b/src/wallet.h<br>@@ -163,6 +163,7 @@ public:<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nOrderPosNext =3D 0;<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nNextResend =3D 0;<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nLastResend =3D 0;<br>+=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nTimeFirstKey =3D 0; <br>=C2=A0=C2=A0=
=C2=A0=C2=A0 }<br><br></div><div>


If this fix is ok please pull from my GitHub fork; username on GitHub is tm=
314159.<br><br>Toshi<br></div><div><br></div></div>
<br></div></div>-----------------------------------------------------------=
-------------------<br>
Time is money. Stop wasting it! Get your web API in 5 minutes.<br>
<a href=3D"http://www.restlet.com/download" target=3D"_blank">www.restlet.c=
om/download</a><br>
<a href=3D"http://p.sf.net/sfu/restlet" target=3D"_blank">http://p.sf.net/s=
fu/restlet</a><br>_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net" target=3D"_bla=
nk">Bitcoin-development@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
<br></blockquote></div>
</blockquote></div><br></div>

--089e01183caef9f43604fa92dfde--