Issue #21151: Fixed a segfault in the winreg module.
When ``None`` was passed as a ``REG_BINARY`` value to SetValueEx,
PyMem_DEL was called on an uninitialized buffer. Patch by John Ehresman.
(Also an incidental typo fix in a comment in test_winreg)
diff --git a/PC/winreg.c b/PC/winreg.c
index d23810b..63c437e 100644
--- a/PC/winreg.c
+++ b/PC/winreg.c
@@ -871,8 +871,10 @@
/* ALSO handle ALL unknown data types here. Even if we can't
support it natively, we should handle the bits. */
default:
- if (value == Py_None)
+ if (value == Py_None) {
*retDataSize = 0;
+ *retDataBuf = NULL;
+ }
else {
Py_buffer view;