]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
adapt padding size based on the current size of the client hello.
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sun, 29 Dec 2013 08:30:44 +0000 (09:30 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sun, 29 Dec 2013 08:30:44 +0000 (09:30 +0100)
lib/ext/dumbfw.c
lib/ext/dumbfw.h

index 2d8c565d7ab8328e0942facc1ddb3006ba22df75..bc995cf6af84122c8209421711eea179e70ac6e0 100644 (file)
@@ -52,23 +52,26 @@ _gnutls_dumbfw_send_params(gnutls_session_t session,
                         gnutls_buffer_st * extdata)
 {
        int total_size = 0, ret;
-       uint8_t pad[DUMBFW_PADDING_SIZE];
+       uint8_t pad[257];
+       unsigned pad_size;
 
        if (session->security_parameters.entity == GNUTLS_SERVER ||
            session->internals.priorities.dumbfw == 0 ||
            (extdata->length < 256 || extdata->length >= 512)) {
                return 0;
        } else {
-               memset(pad, 0, sizeof(pad));
+               /* 256 <= extdata->length < 512 */
+               pad_size = 512 - extdata->length;
+               memset(pad, 0, pad_size);
 
                ret =
                    _gnutls_buffer_append_data_prefix(extdata, 16,
                                                              pad,
-                                                             sizeof(pad)-2);
+                                                             pad_size);
                if (ret < 0)
                        return gnutls_assert_val(ret);
 
-               total_size += sizeof(pad);
+               total_size += 2 + pad_size;
        }
 
        return total_size;
index ce8f21e812321c257f4dc0e7b64aba3e708f06fb..bf0a49f9d744a29eb03f8dbb798f868d36eacd6f 100644 (file)
@@ -22,8 +22,6 @@
 
 #include <gnutls_extensions.h>
 
-#define DUMBFW_PADDING_SIZE 465
-
 extern extension_entry_st ext_mod_dumbfw;
 
 #endif