From: Nikos Mavrogiannopoulos Date: Sun, 29 Dec 2013 08:30:44 +0000 (+0100) Subject: adapt padding size based on the current size of the client hello. X-Git-Tag: gnutls_3_3_0pre0~393 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d28901a3ebd2589d0fc9941475d50f04047f6fe;p=thirdparty%2Fgnutls.git adapt padding size based on the current size of the client hello. --- diff --git a/lib/ext/dumbfw.c b/lib/ext/dumbfw.c index 2d8c565d7a..bc995cf6af 100644 --- a/lib/ext/dumbfw.c +++ b/lib/ext/dumbfw.c @@ -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; diff --git a/lib/ext/dumbfw.h b/lib/ext/dumbfw.h index ce8f21e812..bf0a49f9d7 100644 --- a/lib/ext/dumbfw.h +++ b/lib/ext/dumbfw.h @@ -22,8 +22,6 @@ #include -#define DUMBFW_PADDING_SIZE 465 - extern extension_entry_st ext_mod_dumbfw; #endif