prevent the dict constructor from accepting non-string keyword args #8419

This adds PyArg_ValidateKeywordArguments, which checks that keyword arguments
are all strings, using an optimized method if possible.
diff --git a/Misc/NEWS b/Misc/NEWS
index 44e7fa2..0d72c83 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
 Core and Builtins
 -----------------
 
+- Issue #8419: Prevent the dict constructor from accepting non-string keyword
+  arguments.
+
 - Issue #8124: PySys_WriteStdout() and PySys_WriteStderr() don't execute
   indirectly Python signal handlers anymore because mywrite() ignores
   exceptions (KeyboardInterrupt)
@@ -282,6 +285,9 @@
 C-API
 -----
 
+- Add PyArg_ValidateKeywordArguments, which checks if all keyword arguments are
+  strings in an efficient manner.
+
 - Issue #8276: PyEval_CallObject() is now only available in macro form.  The
   function declaration, which was kept for backwards compatibility reasons,
   is now removed (the macro was introduced in 1997!).