summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--bootstrap.conf2
-rwxr-xr-xsrc/gen-mech-list.sh2
-rw-r--r--tests/tls13/prf.c9
-rw-r--r--tests/utils.h5
5 files changed, 17 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4c7d593cf7..06742b2069 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -464,7 +464,7 @@ Debian.x86_64:
script:
- ./bootstrap
- mkdir -p build && cd build &&
- dash ../configure --disable-gcc-warnings --cache-file ../cache/config.cache --disable-doc --disable-guile --disable-full-test-suite &&
+ dash ../configure --disable-gcc-warnings --cache-file ../cache/config.cache --disable-doc --disable-guile --disable-full-test-suite LDFLAGS='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now' &&
make -j$(nproc) && make check -j$(nproc)
- cd ..
tags:
diff --git a/bootstrap.conf b/bootstrap.conf
index 3c9618b21f..8f369abfbb 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -45,6 +45,8 @@ automake 1.11.1
gettext 0.17
git 1.4.4
perl 5.5
+gperf -
+autopoint -
"
GTKDOCIZE=$(which gtkdocize 2>/dev/null)
diff --git a/src/gen-mech-list.sh b/src/gen-mech-list.sh
index b8596aceba..15cecd916b 100755
--- a/src/gen-mech-list.sh
+++ b/src/gen-mech-list.sh
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-HEADER=$(pkg-config --cflags-only-I p11-kit-1|awk '{print $1}'|sed 's/-I//g')
+HEADER=`pkg-config --cflags-only-I p11-kit-1|awk '{print $1}'|sed 's/-I//g'`
HEADER="${HEADER}/p11-kit/pkcs11.h"
echo "const char *mech_list[] = {"
diff --git a/tests/tls13/prf.c b/tests/tls13/prf.c
index eb2d0e6096..75daff59d4 100644
--- a/tests/tls13/prf.c
+++ b/tests/tls13/prf.c
@@ -70,9 +70,13 @@ gnutls_datum_t hrnd = {(void*)"\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
static const
gnutls_datum_t hsrnd = {(void*)"\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+static int gnutls_rnd_works;
+
int __attribute__ ((visibility ("protected")))
gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
+ gnutls_rnd_works = 1;
+
memset(data, 0xff, len);
/* Flip the first byte to avoid infinite loop in the RSA
@@ -135,6 +139,11 @@ static void check_prfs(gnutls_session_t session)
unsigned char key_material[512];
int ret;
+ if (!gnutls_rnd_works) {
+ fprintf(stderr, "gnutls_rnd() could not be overridden, see #584\n");
+ exit(77);
+ }
+
TRY_OLD(13, "key expansion", 34, (uint8_t*)KEY_EXP_VALUE);
TRY_OLD(6, "hello", 31, (uint8_t*)HELLO_VALUE);
diff --git a/tests/utils.h b/tests/utils.h
index d5409d661d..b905065c52 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -152,9 +152,12 @@ inline static void _check_wait_status(int status, unsigned sigonly)
if (WIFSIGNALED(status)) {
fail("Child died with signal %d\n", WTERMSIG(status));
} else {
- if (!sigonly)
+ if (!sigonly) {
+ if (WEXITSTATUS(status) == 77)
+ exit(77);
fail("Child died with status %d\n",
WEXITSTATUS(status));
+ }
}
}
#endif