- Issue #13021: Missing decref on an error path.  Thanks to Suman Saha for
  finding the bug and providing a patch.
diff --git a/Misc/NEWS b/Misc/NEWS
index bc52aa8..1d03385 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
 Core and Builtins
 -----------------
 
+- Issue #13021: Missing decref on an error path.  Thanks to Suman Saha for
+  finding the bug and providing a patch.
+
 - Issue #12973: Fix overflow check that relied on undefined behaviour in
   list_repeat.  This bug caused test_list to fail with recent versions
   of Clang.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 084db12..bea7fe1 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -1241,8 +1241,10 @@
             Py_DECREF(f);
             return -1;
         }
-        if (PyDict_SetItemString(d, "__cached__", Py_None) < 0)
+        if (PyDict_SetItemString(d, "__cached__", Py_None) < 0) {
+            Py_DECREF(f);
             return -1;
+        }
         set_file_name = 1;
         Py_DECREF(f);
     }