Further correction: on reflection, after examining all the call
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Tue, 16 Sep 2008 22:56:08 +0000 (22:56 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Tue, 16 Sep 2008 22:56:08 +0000 (22:56 +0000)
sites for uint64_make(), we _shouldn't_ attempt to preserve high
bits in the low-order argument; it turns out not to be what the call
sites want.

git-svn-id: svn://svn.tartarus.org/sgt/putty@8185 cda61777-01e9-0310-a592-d414129be87e

int64.c

diff --git a/int64.c b/int64.c
index 664ce49..b1c986c 100644 (file)
--- a/int64.c
+++ b/int64.c
@@ -49,7 +49,7 @@ void uint64_decimal(uint64 x, char *buffer)
 uint64 uint64_make(unsigned long hi, unsigned long lo)
 {
     uint64 y;
-    y.hi = (hi + (lo >> 32)) & 0xFFFFFFFFU;
+    y.hi = hi & 0xFFFFFFFFU;
     y.lo = lo & 0xFFFFFFFFU;
     return y;
 }