]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-120568: fix file leak in PyUnstable_CopyPerfMapFile (#120569)
authorCarson Radtke <carsonRadtke@users.noreply.github.com>
Sun, 16 Jun 2024 17:51:52 +0000 (12:51 -0500)
committerGitHub <noreply@github.com>
Sun, 16 Jun 2024 17:51:52 +0000 (17:51 +0000)
Python/sysmodule.c

index 00aa95531026b5bd3c7e06a1a6eb265b8398f953..3bb7b4d59b94e232ed06a66ec35861a1ef3b1a51 100644 (file)
@@ -2509,16 +2509,16 @@ PyAPI_FUNC(void) PyUnstable_PerfMapState_Fini(void) {
 
 PyAPI_FUNC(int) PyUnstable_CopyPerfMapFile(const char* parent_filename) {
 #ifndef MS_WINDOWS
-    FILE* from = fopen(parent_filename, "r");
-    if (!from) {
-        return -1;
-    }
     if (perf_map_state.perf_map == NULL) {
         int ret = PyUnstable_PerfMapState_Init();
         if (ret != 0) {
             return ret;
         }
     }
+    FILE* from = fopen(parent_filename, "r");
+    if (!from) {
+        return -1;
+    }
     char buf[4096];
     PyThread_acquire_lock(perf_map_state.map_lock, 1);
     int fflush_result = 0, result = 0;