summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/libgit2/APKBUILD4
-rw-r--r--user/libgit2/test-32bit.patch59
2 files changed, 62 insertions, 1 deletions
diff --git a/user/libgit2/APKBUILD b/user/libgit2/APKBUILD
index 9c92c996e..98b1d68ef 100644
--- a/user/libgit2/APKBUILD
+++ b/user/libgit2/APKBUILD
@@ -14,6 +14,7 @@ depends_dev="curl-dev libssh2-dev"
makedepends="$depends_dev python3 cmake zlib-dev openssl-dev"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz
+ test-32bit.patch
"
# secfixes:
@@ -50,4 +51,5 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="de2e266939bd40bc580603539e1156906b97299523336ddc6a66c3bec26729495bef2daa2d240b83b7e011e93852381e95a4407132b0440a5aa1e1b7642c0011 libgit2-0.27.7.tar.gz"
+sha512sums="de2e266939bd40bc580603539e1156906b97299523336ddc6a66c3bec26729495bef2daa2d240b83b7e011e93852381e95a4407132b0440a5aa1e1b7642c0011 libgit2-0.27.7.tar.gz
+83b82b442d34b633d1889863472e51f3b6b68fbd4089d3448d86adeb7ce79eee495fea3c19edb88f563226bd2badb0166b7e41f9d4ffe8304bbf3b2abdf5a22f test-32bit.patch"
diff --git a/user/libgit2/test-32bit.patch b/user/libgit2/test-32bit.patch
new file mode 100644
index 000000000..d1240d904
--- /dev/null
+++ b/user/libgit2/test-32bit.patch
@@ -0,0 +1,59 @@
+From 415a8ae9c9b6ac18f0524b6af8e58408b426457d Mon Sep 17 00:00:00 2001
+From: Edward Thomson <ethomson@edwardthomson.com>
+Date: Thu, 13 Sep 2018 13:27:07 +0100
+Subject: [PATCH] tests: don't run buf::oom on 32-bit systems
+
+On a 32-bit Linux systems, the value large enough to make malloc
+guarantee a failure is also large enough that valgrind considers it
+"fishy". Skip this test on those systems entirely.
+---
+ tests/buf/oom.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/tests/buf/oom.c b/tests/buf/oom.c
+index 2741a8ddf2..ec3bad9979 100644
+--- a/tests/buf/oom.c
++++ b/tests/buf/oom.c
+@@ -11,12 +11,8 @@
+ */
+ #if defined(GIT_ARCH_64) && defined(__linux__)
+ # define TOOBIG 0x0fffffffffffffff
+-#elif defined(__linux__)
+-# define TOOBIG 0x0fffffff
+ #elif defined(GIT_ARCH_64)
+ # define TOOBIG 0xffffffffffffff00
+-#else
+-# define TOOBIG 0xffffff00
+ #endif
+
+ /**
+@@ -25,13 +21,18 @@
+ * will fail. And because the git_buf_grow() wrapper always
+ * sets mark_oom, the code in git_buf_try_grow() will free
+ * the internal buffer and set it to git_buf__oom.
+- *
++ *
+ * We initialized the internal buffer to (the static variable)
+ * git_buf__initbuf. The purpose of this test is to make sure
+ * that we don't try to free the static buffer.
++ *
++ * Skip this test entirely on 32-bit platforms; a buffer large enough
++ * to guarantee malloc failures is so large that valgrind considers
++ * it likely to be an error.
+ */
+ void test_buf_oom__grow(void)
+ {
++#ifdef GIT_ARCH_64
+ git_buf buf = GIT_BUF_INIT;
+
+ git_buf_clear(&buf);
+@@ -40,6 +41,9 @@ void test_buf_oom__grow(void)
+ cl_assert(git_buf_oom(&buf));
+
+ git_buf_free(&buf);
++#else
++ cl_skip();
++#endif
+ }
+
+ void test_buf_oom__grow_by(void)