# HG changeset patch # User Bram Moolenaar # Date 1627587004 -7200 # Node ID c094a29722bbdb7ebe27546b49640f95d3a46c5f # Parent b0a6cb69b7949659ec8622b654ea667b512f1cae patch 8.2.3247: using uninitialized memory when checking for crypt method Commit: https://github.com/vim/vim/commit/77ab4e28a26a92628bc85cd580c1bfa2b6230be6 Author: Bram Moolenaar Date: Thu Jul 29 21:23:50 2021 +0200 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 --- 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 --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3247, +/**/ 3246, /**/ 3245,