From: Nikos Mavrogiannopoulos Date: Sat, 21 Nov 2015 12:33:42 +0000 (+0100) Subject: tests: added check for multiple extension registering X-Git-Tag: gnutls_3_5_0~536 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ebcd562003a6f0e0e607e1999c0dfa3311c59994;p=thirdparty%2Fgnutls.git tests: added check for multiple extension registering --- diff --git a/tests/mini-extension.c b/tests/mini-extension.c index 80095edfd8..c90ac515ab 100644 --- a/tests/mini-extension.c +++ b/tests/mini-extension.c @@ -229,14 +229,13 @@ const gnutls_datum_t server_key = { server_key_pem, sizeof(server_key_pem) }; -int err, ret; -char topbuf[512]; -gnutls_session_t session; -int optval = 1; static void server(int sd) { gnutls_certificate_credentials_t serverx509cred; + int ret; + gnutls_session_t session; + unsigned i; /* this must be called once in the program */ @@ -284,6 +283,15 @@ static void server(int sd) */ gnutls_bye(session, GNUTLS_SHUT_WR); + /* check whether we can crash the library by adding many extensions */ + for (i=0;i<64;i++) { + ret = gnutls_ext_register("ext_serverxx", TLSEXT_TYPE_SAMPLE+i+1, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL); + if (ret < 0) { + success("failed registering extension no %d (expected)\n", i+1); + break; + } + } + close(sd); gnutls_deinit(session); @@ -299,6 +307,7 @@ void doit(void) { pid_t child; int sockets[2]; + int err; err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets); if (err == -1) {