Module: wine Branch: master Commit: a7efc770f7b1e1da959367e3186d871dce50c6e2 URL: https://gitlab.winehq.org/wine/wine/-/commit/a7efc770f7b1e1da959367e3186d871...
Author: Paul Gofman gofmanp@gmail.com Date: Wed Dec 14 21:13:12 2022 -0600
bcrypt: Use SecureZeroMemory() to zero magic values before free.
The compiler may optimize out the assignment before free and then second free on the bcrypt handle finds magic values in the freed memory.
---
dlls/bcrypt/bcrypt_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c index 72501faf90e..cf05e8b4d44 100644 --- a/dlls/bcrypt/bcrypt_main.c +++ b/dlls/bcrypt/bcrypt_main.c @@ -397,7 +397,7 @@ NTSTATUS WINAPI BCryptOpenAlgorithmProvider( BCRYPT_ALG_HANDLE *handle, const WC
static void destroy_object( struct object *obj ) { - obj->magic = 0; + SecureZeroMemory( &obj->magic, sizeof(obj->magic) ); free( obj ); }