Skip to content
  • Jeff King's avatar
    reflog-walk: include all fields when freeing complete_reflogs · e30d463d
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    When we encounter an error adding reflogs for a walk, we try
    to free any logs we have read. But we didn't free all
    fields, meaning that we could in theory leak all of the
    "items" array (which would consitute the bulk of the
    allocated memory).
    
    This patch adds a helper which frees all of the entries and
    uses it as appropriate.
    
    As it turns out, the leak seems impossible to trigger with
    the current code. Of the three error paths that free the
    complete_reflogs struct, two only kick in when the items
    array is empty, and the third was removed entirely in the
    previous commit.
    
    So this patch should be a noop in terms of behavior, but it
    fixes a potential maintenance headache should anybody add a
    new error path and copy the partial-free code. Which is
    what happened in 5026b471
    
     (add_reflog_for_walk: avoid
    memory leak, 2017-05-04), though its leaky call was the
    third one that was recently removed.
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    e30d463d