From: Bram Moolenaar Date: Thu, 29 Jul 2021 19:23:50 +0000 (+0200) Subject: patch 8.2.3247: using uninitialized memory when checking for crypt method X-Git-Tag: v8.2.3247 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=77ab4e28a26a92628bc85cd580c1bfa2b6230be6;p=thirdparty%2Fvim.git patch 8.2.3247: using uninitialized memory when checking for crypt method Problem: Using uninitialized memory when checking for crypt method. Solution: Check the header length before using the salt and seed. --- diff --git a/src/fileio.c b/src/fileio.c index 81a7b50915..eb46f1fd86 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -2917,15 +2917,16 @@ check_for_cryptkey( { int header_len; - curbuf->b_cryptstate = crypt_create_from_header( - method, cryptkey, ptr); - crypt_set_cm_option(curbuf, method); - - // Remove cryptmethod specific header from the text. header_len = crypt_get_header_len(method); if (*sizep <= header_len) // invalid header, buffer can't be encrypted return NULL; + + curbuf->b_cryptstate = crypt_create_from_header( + method, cryptkey, ptr); + crypt_set_cm_option(curbuf, method); + + // Remove cryptmethod specific header from the text. *filesizep += header_len; *sizep -= header_len; mch_memmove(ptr, ptr + header_len, (size_t)*sizep); diff --git a/src/version.c b/src/version.c index 7710018b31..c120a2bc79 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3247, /**/ 3246, /**/