]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ew/commit-reach-clean-up-flags-fix'
authorJunio C Hamano <gitster@pobox.com>
Sun, 19 Mar 2023 22:03:10 +0000 (15:03 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 19 Mar 2023 22:03:10 +0000 (15:03 -0700)
Fix a segfaulting loop.  The function and its caller may need
further clean-up.

* ew/commit-reach-clean-up-flags-fix:
  commit-reach: avoid NULL dereference

1  2 
commit-reach.c

diff --cc commit-reach.c
index 5ba822a7200f437e1ff03cd1eeb471d5a9572c89,7e422b0cd39776dbfaa1ea6c7d5792279f8444b2..7c0c39fd2864c2db72b81adc4c0b1b6d7cf0337e
@@@ -806,11 -622,18 +806,15 @@@ int can_all_from_reach_with_flag(struc
        }
  
  cleanup:
 -      for (i = 0; i < nr_commits; i++) {
 -              clear_commit_marks(list[i], RESULT);
 -              clear_commit_marks(list[i], assign_flag);
 -      }
 +      clear_commit_marks_many(nr_commits, list, RESULT | assign_flag);
        free(list);
  
-       for (i = 0; i < from->nr; i++)
-               from->objects[i].item->flags &= ~assign_flag;
+       for (i = 0; i < from->nr; i++) {
+               struct object *from_one = from->objects[i].item;
+               if (from_one)
+                       from_one->flags &= ~assign_flag;
+       }
  
        return result;
  }