inspect: Validate that __signature__ is None or an instance of Signature.

Closes #21801.
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 4ac76b1..b9cdcc2 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -1939,6 +1939,10 @@
         pass
     else:
         if sig is not None:
+            if not isinstance(sig, Signature):
+                raise TypeError(
+                    'unexpected object {!r} in __signature__ '
+                    'attribute'.format(sig))
             return sig
 
     try: