{"thread":{"id":"64642","subject":"[PATCH] fsm-listen-darwin: free corefoundation paths","startedAt":"2025-12-18T02:41:00Z","lastAt":"2025-12-18T16:11:40Z","messageCount":2,"participants":["AZero13 via GitGitGadget"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"532402","messageId":"pull.2129.git.git.1766025658413.gitgitgadget@gmail.com","threadId":"64642","inReplyTo":null,"subject":"[PATCH] fsm-listen-darwin: free corefoundation paths","fromName":"AZero13 via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-12-18T02:40:58Z","receivedAt":"2025-12-18T02:41:00Z","isPatch":true,"sender":{"key":"name:AZero13","avatar":null},"body":"From: AZero13 <gfunni234@gmail.com>\n\nThey are not freed even though they should be.\n\nSigned-off-by: Greg Funni <gfunni234@gmail.com>\n---\n    fsm-listen-darwin: free corefoundation paths\n    \n    They are not freed even though they should be.\n    \n    Signed-off-by: Greg Funni gfunni234@gmail.com\n\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2129%2FAZero13%2Ffixs-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2129/AZero13/fixs-v1\nPull-Request: https://github.com/git/git/pull/2129\n\n compat/fsmonitor/fsm-darwin-gcc.h    |  2 ++\n compat/fsmonitor/fsm-listen-darwin.c | 14 ++++++++++++++\n 2 files changed, 16 insertions(+)\n\ndiff --git a/compat/fsmonitor/fsm-darwin-gcc.h b/compat/fsmonitor/fsm-darwin-gcc.h\nindex 3496e29b3a..8b4bc3a5bc 100644\n--- a/compat/fsmonitor/fsm-darwin-gcc.h\n+++ b/compat/fsmonitor/fsm-darwin-gcc.h\n@@ -40,6 +40,7 @@ typedef const FSEventStreamRef ConstFSEventStreamRef;\n typedef unsigned int CFStringEncoding;\n #define kCFStringEncodingUTF8 0x08000100\n \n+typedef const void *CFTypeRef;\n typedef const struct __CFString *CFStringRef;\n typedef const struct __CFArray *CFArrayRef;\n typedef const struct __CFRunLoop *CFRunLoopRef;\n@@ -76,6 +77,7 @@ CFStringRef CFStringCreateWithCString(void *allocator, const char *string,\n \t\t\t\t      CFStringEncoding encoding);\n CFArrayRef CFArrayCreate(void *allocator, const void **items, long long count,\n \t\t\t void *callbacks);\n+void CFRelease(CFTypeRef cf);\n void CFRunLoopRun(void);\n void CFRunLoopStop(CFRunLoopRef run_loop);\n CFRunLoopRef CFRunLoopGetCurrent(void);\ndiff --git a/compat/fsmonitor/fsm-listen-darwin.c b/compat/fsmonitor/fsm-listen-darwin.c\nindex 43c3a915a0..149c310433 100644\n--- a/compat/fsmonitor/fsm-listen-darwin.c\n+++ b/compat/fsmonitor/fsm-listen-darwin.c\n@@ -455,6 +455,13 @@ int fsm_listen__ctor(struct fsmonitor_daemon_state *state)\n failed:\n \terror(_(\"Unable to create FSEventStream.\"));\n \n+\tif (data->cfar_paths_to_watch)\n+\t\tCFRelease(data->cfar_paths_to_watch);\n+\tif (data->cfsr_gitdir_path)\n+\t\tCFRelease(data->cfsr_gitdir_path);\n+\tif (data->cfsr_worktree_path)\n+\t\tCFRelease(data->cfsr_worktree_path);\n+\n \tFREE_AND_NULL(state->listen_data);\n \treturn -1;\n }\n@@ -476,6 +483,13 @@ void fsm_listen__dtor(struct fsmonitor_daemon_state *state)\n \t\tFSEventStreamRelease(data->stream);\n \t}\n \n+\tif (data->cfar_paths_to_watch)\n+\t\tCFRelease(data->cfar_paths_to_watch);\n+\tif (data->cfsr_gitdir_path)\n+\t\tCFRelease(data->cfsr_gitdir_path);\n+\tif (data->cfsr_worktree_path)\n+\t\tCFRelease(data->cfsr_worktree_path);\n+\n \tif (data->dq)\n \t\tdispatch_release(data->dq);\n \tpthread_cond_destroy(&data->dq_finished);\n\nbase-commit: c4a0c8845e2426375ad257b6c221a3a7d92ecfda\n-- \ngitgitgadget\n"},{"id":"532476","messageId":"pull.2129.v2.git.git.1766074298164.gitgitgadget@gmail.com","threadId":"64642","inReplyTo":"pull.2129.git.git.1766025658413.gitgitgadget@gmail.com","subject":"[PATCH v2] fsm-listen-darwin: free corefoundation paths","fromName":"AZero13 via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-12-18T16:11:38Z","receivedAt":"2025-12-18T16:11:40Z","isPatch":true,"sender":{"key":"name:AZero13","avatar":null},"body":"From: Greg Funni <gfunni234@gmail.com>\n\nThey are not freed even though they should be.\n\nSigned-off-by: Greg Funni <gfunni234@gmail.com>\n---\n    fsm-listen-darwin: free corefoundation paths\n    \n    They are not freed even though they should be.\n    \n    Signed-off-by: Greg Funni gfunni234@gmail.com\n\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2129%2FAZero13%2Ffixs-v2\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2129/AZero13/fixs-v2\nPull-Request: https://github.com/git/git/pull/2129\n\nRange-diff vs v1:\n\n 1:  164c091f1c ! 1:  90d8f11554 fsm-listen-darwin: free corefoundation paths\n     @@\n       ## Metadata ##\n     -Author: AZero13 <gfunni234@gmail.com>\n     +Author: Greg Funni <gfunni234@gmail.com>\n      \n       ## Commit message ##\n          fsm-listen-darwin: free corefoundation paths\n\n\n compat/fsmonitor/fsm-darwin-gcc.h    |  2 ++\n compat/fsmonitor/fsm-listen-darwin.c | 14 ++++++++++++++\n 2 files changed, 16 insertions(+)\n\ndiff --git a/compat/fsmonitor/fsm-darwin-gcc.h b/compat/fsmonitor/fsm-darwin-gcc.h\nindex 3496e29b3a..8b4bc3a5bc 100644\n--- a/compat/fsmonitor/fsm-darwin-gcc.h\n+++ b/compat/fsmonitor/fsm-darwin-gcc.h\n@@ -40,6 +40,7 @@ typedef const FSEventStreamRef ConstFSEventStreamRef;\n typedef unsigned int CFStringEncoding;\n #define kCFStringEncodingUTF8 0x08000100\n \n+typedef const void *CFTypeRef;\n typedef const struct __CFString *CFStringRef;\n typedef const struct __CFArray *CFArrayRef;\n typedef const struct __CFRunLoop *CFRunLoopRef;\n@@ -76,6 +77,7 @@ CFStringRef CFStringCreateWithCString(void *allocator, const char *string,\n \t\t\t\t      CFStringEncoding encoding);\n CFArrayRef CFArrayCreate(void *allocator, const void **items, long long count,\n \t\t\t void *callbacks);\n+void CFRelease(CFTypeRef cf);\n void CFRunLoopRun(void);\n void CFRunLoopStop(CFRunLoopRef run_loop);\n CFRunLoopRef CFRunLoopGetCurrent(void);\ndiff --git a/compat/fsmonitor/fsm-listen-darwin.c b/compat/fsmonitor/fsm-listen-darwin.c\nindex 43c3a915a0..149c310433 100644\n--- a/compat/fsmonitor/fsm-listen-darwin.c\n+++ b/compat/fsmonitor/fsm-listen-darwin.c\n@@ -455,6 +455,13 @@ int fsm_listen__ctor(struct fsmonitor_daemon_state *state)\n failed:\n \terror(_(\"Unable to create FSEventStream.\"));\n \n+\tif (data->cfar_paths_to_watch)\n+\t\tCFRelease(data->cfar_paths_to_watch);\n+\tif (data->cfsr_gitdir_path)\n+\t\tCFRelease(data->cfsr_gitdir_path);\n+\tif (data->cfsr_worktree_path)\n+\t\tCFRelease(data->cfsr_worktree_path);\n+\n \tFREE_AND_NULL(state->listen_data);\n \treturn -1;\n }\n@@ -476,6 +483,13 @@ void fsm_listen__dtor(struct fsmonitor_daemon_state *state)\n \t\tFSEventStreamRelease(data->stream);\n \t}\n \n+\tif (data->cfar_paths_to_watch)\n+\t\tCFRelease(data->cfar_paths_to_watch);\n+\tif (data->cfsr_gitdir_path)\n+\t\tCFRelease(data->cfsr_gitdir_path);\n+\tif (data->cfsr_worktree_path)\n+\t\tCFRelease(data->cfsr_worktree_path);\n+\n \tif (data->dq)\n \t\tdispatch_release(data->dq);\n \tpthread_cond_destroy(&data->dq_finished);\n\nbase-commit: c4a0c8845e2426375ad257b6c221a3a7d92ecfda\n-- \ngitgitgadget\n"}]}