From 4e43b947c190be295f2db0f3cb1cfa6f810c513e Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 5 Sep 2018 16:11:18 +0200 Subject: community/grumpy: fix 32-bit overflows --- .../4f3cc3ed446170a161cf8ecb644a740ac233b005.patch | 30 ++++++++++++++++++++++ community/grumpy/PKGBUILD | 18 +++++++++++++ .../ef4791393db1ab586400d326ae7d7993e5610d00.patch | 26 +++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 community/grumpy/4f3cc3ed446170a161cf8ecb644a740ac233b005.patch create mode 100644 community/grumpy/PKGBUILD create mode 100644 community/grumpy/ef4791393db1ab586400d326ae7d7993e5610d00.patch (limited to 'community/grumpy') diff --git a/community/grumpy/4f3cc3ed446170a161cf8ecb644a740ac233b005.patch b/community/grumpy/4f3cc3ed446170a161cf8ecb644a740ac233b005.patch new file mode 100644 index 00000000..ffe0f2ed --- /dev/null +++ b/community/grumpy/4f3cc3ed446170a161cf8ecb644a740ac233b005.patch @@ -0,0 +1,30 @@ +From 4f3cc3ed446170a161cf8ecb644a740ac233b005 Mon Sep 17 00:00:00 2001 +From: Alan Justino +Date: Wed, 7 Mar 2018 19:30:45 -0300 +Subject: [PATCH] Fix int underflow on 32bit CPUs + +--- + tools/pkgc.go | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/tools/pkgc.go b/tools/pkgc.go +index e04017c7..93a6fe7d 100644 +--- a/tools/pkgc.go ++++ b/tools/pkgc.go +@@ -75,6 +75,16 @@ func getConst(name string, v constant.Value) string { + } else { + format = "float64(%s)" + } ++ } else { ++ if i, exact := constant.Int64Val(v); exact { ++ if i > math.MinInt8 { ++ format = "int(%s)" ++ } else if i > math.MinInt32 { ++ format = "int32(%s)" ++ } else { ++ format = "int64(%s)" ++ } ++ } + } + case constant.Float: + format = "float64(%s)" diff --git a/community/grumpy/PKGBUILD b/community/grumpy/PKGBUILD new file mode 100644 index 00000000..b19f2487 --- /dev/null +++ b/community/grumpy/PKGBUILD @@ -0,0 +1,18 @@ +source+=( + '4f3cc3ed446170a161cf8ecb644a740ac233b005.patch' + 'ef4791393db1ab586400d326ae7d7993e5610d00.patch' +) +unset md5sums +sha512sums=( + 'SKIP' + 'e86c54bd4bc3492eae0b1cf69a5ea717130024bc6088e994a9a0fae040fdc6962bbbd50cfa4a66b6db228360dd32c0318003f2248f0e41443b60990c67ebcf50' + 'f646c59e2b1cab40f67c0e150d33bae55bf8d01142c2e6f7d52c331909c5ecbfcd004b4aaafefb07cea268f9dd1c406c4da77e18453097fc0e3f11467b9a39c8' +) +eval "$( + declare -f prepare | \ + sed ' + 2 a cd "$srcdir/grumpy" \ + patch -p1 -i "$srcdir/ef4791393db1ab586400d326ae7d7993e5610d00.patch" + patch -p1 -i "$srcdir/4f3cc3ed446170a161cf8ecb644a740ac233b005.patch" \ + ' +)" diff --git a/community/grumpy/ef4791393db1ab586400d326ae7d7993e5610d00.patch b/community/grumpy/ef4791393db1ab586400d326ae7d7993e5610d00.patch new file mode 100644 index 00000000..c8894732 --- /dev/null +++ b/community/grumpy/ef4791393db1ab586400d326ae7d7993e5610d00.patch @@ -0,0 +1,26 @@ +From ef4791393db1ab586400d326ae7d7993e5610d00 Mon Sep 17 00:00:00 2001 +From: Alan Justino +Date: Wed, 7 Mar 2018 19:00:29 -0300 +Subject: [PATCH] Fix overflow on math.MaxInt64 + +--- + tools/pkgc.go | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/tools/pkgc.go b/tools/pkgc.go +index 4b08aac5..e04017c7 100644 +--- a/tools/pkgc.go ++++ b/tools/pkgc.go +@@ -65,7 +65,11 @@ func getConst(name string, v constant.Value) string { + case constant.Int: + if constant.Sign(v) >= 0 { + if i, exact := constant.Uint64Val(v); exact { +- if i > math.MaxInt64 { ++ if i < math.MaxInt8 { ++ format = "uint(%s)" ++ } else if i < math.MaxInt32 { ++ format = "uint32(%s)" ++ } else { + format = "uint64(%s)" + } + } else { -- cgit v1.2.3-70-g09d2