shithub: scc

Download patch

ref: bf30308c5a79d7e15d662a35490a4ab92b85fb89
parent: f48467f6f824135bf4fc6fa256a3a9d50ae077d7
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Thu Jan 25 07:31:47 EST 2018

[as] Fix lunpack()

q specifier is at least 64 bits, so the cast must be long long.

--- a/lib/scc/lunpack.c
+++ b/lib/scc/lunpack.c
@@ -36,14 +36,14 @@
 			break;
 		case 'q':
 			qp = va_arg(va, unsigned long long *);
-			q =  (unsigned long) *bp++ << 56;
-			q |= (unsigned long) *bp++ << 48;
-			q |= (unsigned long) *bp++ << 40;
-			q |= (unsigned long) *bp++ << 32;
-			q |= (unsigned long) *bp++ << 24;
-			q |= (unsigned long) *bp++ << 16;
-			q |= (unsigned long) *bp++ << 8;
-			q |= (unsigned long) *bp++;
+			q =  (unsigned long long) *bp++ << 56;
+			q |= (unsigned long long) *bp++ << 48;
+			q |= (unsigned long long) *bp++ << 40;
+			q |= (unsigned long long) *bp++ << 32;
+			q |= (unsigned long long) *bp++ << 24;
+			q |= (unsigned long long) *bp++ << 16;
+			q |= (unsigned long long) *bp++ << 8;
+			q |= (unsigned long long) *bp++;
 			*qp = q;
 			break;
 		default: