Browse Source

fsmonitor: fix leak of warning message

The fsm_settings__get_incompatible_msg() function returns an allocated
string.  So we can't pass its result directly to warning(); we must hold
on to the pointer and free it to avoid a leak.

The leak here is small and fixed size, but Coverity complained, and
presumably SANITIZE=leaks would eventually.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 2 years ago committed by Junio C Hamano
parent
commit
c4f9490790
  1. 4
      fsmonitor.c

4
fsmonitor.c

@ -309,8 +309,10 @@ void refresh_fsmonitor(struct index_state *istate) @@ -309,8 +309,10 @@ void refresh_fsmonitor(struct index_state *istate)
enum fsmonitor_reason reason = fsm_settings__get_reason(r);

if (!warn_once && reason > FSMONITOR_REASON_OK) {
char *msg = fsm_settings__get_incompatible_msg(r, reason);
warn_once = 1;
warning("%s", fsm_settings__get_incompatible_msg(r, reason));
warning("%s", msg);
free(msg);
}

if (fsm_mode <= FSMONITOR_MODE_DISABLED ||

Loading…
Cancel
Save