diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp index 02399b287f2594f3d5e72cd186509b53bee4c4e9..dec664574de5e9c0a4f528c97ffbb0b5c219d4a5 100644 --- a/src/os/linux/vm/os_linux.cpp +++ b/src/os/linux/vm/os_linux.cpp @@ -2528,6 +2528,7 @@ get_stack_bounds(uintptr_t *bottom, uintptr_t *top) char *str = NULL; ssize_t len = getline(&str, &dummy, f); if (len == -1) { + fclose(f); return false; } @@ -2543,14 +2544,14 @@ get_stack_bounds(uintptr_t *bottom, uintptr_t *top) uintptr_t sp = (uintptr_t)__builtin_frame_address(0); if (sp >= *bottom && sp <= *top) { free(str); + fclose(f); return true; } } } - free(str); } - + fclose(f); return false; }