]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
tests: added check for multiple extension registering
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 21 Nov 2015 12:33:42 +0000 (13:33 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 21 Nov 2015 12:39:47 +0000 (13:39 +0100)
tests/mini-extension.c

index 80095edfd8be69491ffe9c641e8b46fdde6bb71c..c90ac515ab11920679da76b589179e5432dafbbc 100644 (file)
@@ -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) {