Re: [PATCH v2 04/28] fsmonitor-ipc: create client routines for git-fsmonitor--daemon
From: Johannes Schindelin <hidden>
Date: 2021-06-02 11:25:12
Hi Jeff, I know you're on vacation, therefore I would like to apologize for adding to your post-vacation notification overload, but... On Sat, 22 May 2021, Jeff Hostetler via GitGitGadget wrote:
quoted hunk ↗ jump to hunk
From: Jeff Hostetler <redacted>diff --git a/fsmonitor-ipc.c b/fsmonitor-ipc.c new file mode 100644 index 000000000000..e62901a85b5d --- /dev/null +++ b/fsmonitor-ipc.c@@ -0,0 +1,179 @@[...] + +int fsmonitor_ipc__send_query(const char *since_token, + struct strbuf *answer) +{ + int ret = -1; + int tried_to_spawn = 0; + enum ipc_active_state state = IPC_STATE__OTHER_ERROR; + struct ipc_client_connection *connection = NULL; + struct ipc_client_connect_options options + = IPC_CLIENT_CONNECT_OPTIONS_INIT; + + options.wait_if_busy = 1; + options.wait_if_not_found = 0; + + trace2_region_enter("fsm_client", "query", NULL); + + trace2_data_string("fsm_client", NULL, "query/command", + since_token); + +try_again: + state = ipc_client_try_connect(fsmonitor_ipc__get_path(), &options, + &connection); + + switch (state) { + case IPC_STATE__LISTENING: + ret = ipc_client_send_command_to_connection( + connection, since_token, strlen(since_token), answer);
Here, `since_token` can be `NULL` (and hence the `strlen(since_token)` can lead to a segmentation fault). I ran into this situation while `git rebase -i --autostash` wanted to apply the stashed changes. Since I picked up your v2 and included it in Git for Windows v2.32.0-rc2, I needed this hotfix: https://github.com/git-for-windows/git/pull/3241 Thanks, Dscho