Skip to content

Commit

Permalink
Merge branch 'fix'
Browse files Browse the repository at this point in the history
* fix:
  read-cache.c: use xcalloc() not calloc()
  apply: fix infinite loop with multiple patches with --index
  • Loading branch information
Junio C Hamano committed May 9, 2006
2 parents 45f75a0 + 28cc4ab commit 016cd9f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
18 changes: 9 additions & 9 deletions apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
//
static const char *prefix;
static int prefix_length = -1;
static int newfd = -1;

static int p_value = 1;
static int allow_binary_replacement = 0;
Expand Down Expand Up @@ -1873,7 +1874,6 @@ static int use_patch(struct patch *p)

static int apply_patch(int fd, const char *filename)
{
int newfd;
unsigned long offset, size;
char *buffer = read_patch_file(fd, &size);
struct patch *list = NULL, **listp = &list;
Expand Down Expand Up @@ -1904,12 +1904,11 @@ static int apply_patch(int fd, const char *filename)
size -= nr;
}

newfd = -1;
if (whitespace_error && (new_whitespace == error_on_whitespace))
apply = 0;

write_index = check_index && apply;
if (write_index)
if (write_index && newfd < 0)
newfd = hold_index_file_for_update(&cache_file, get_index_file());
if (check_index) {
if (read_cache() < 0)
Expand All @@ -1922,12 +1921,6 @@ static int apply_patch(int fd, const char *filename)
if (apply)
write_out_results(list, skipped_patch);

if (write_index) {
if (write_cache(newfd, active_cache, active_nr) ||
commit_index_file(&cache_file))
die("Unable to write new cachefile");
}

if (show_index_info)
show_index_list(list);

Expand Down Expand Up @@ -2085,5 +2078,12 @@ int main(int argc, char **argv)
whitespace_error == 1 ? "" : "s",
whitespace_error == 1 ? "s" : "");
}

if (write_index) {
if (write_cache(newfd, active_cache, active_nr) ||
commit_index_file(&cache_file))
die("Unable to write new cachefile");
}

return 0;
}
2 changes: 1 addition & 1 deletion read-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,7 @@ int read_cache(void)

active_nr = ntohl(hdr->hdr_entries);
active_alloc = alloc_nr(active_nr);
active_cache = calloc(active_alloc, sizeof(struct cache_entry *));
active_cache = xcalloc(active_alloc, sizeof(struct cache_entry *));

offset = sizeof(*hdr);
for (i = 0; i < active_nr; i++) {
Expand Down

0 comments on commit 016cd9f

Please sign in to comment.