diff options
-rw-r--r-- | .gitlab-ci.yml | 2 | ||||
-rw-r--r-- | bootstrap.conf | 2 | ||||
-rwxr-xr-x | src/gen-mech-list.sh | 2 | ||||
-rw-r--r-- | tests/tls13/prf.c | 9 | ||||
-rw-r--r-- | tests/utils.h | 5 |
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 |