summaryrefslogtreecommitdiff
path: root/rerere.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-05-30 00:09:55 -0700
committerJunio C Hamano <gitster@pobox.com>2011-05-30 00:09:55 -0700
commitfb674d767180354d9ad3e69f1d41bee98df6bfe9 (patch)
treecc96e4d45a06efacd978939e898713f9ede9db0b /rerere.c
parentbe653d6cb87d17c1d70d31cb7cfcb004d48def7b (diff)
parent5b42477b59886a85d4b49a60313f9b9d4a0d576f (diff)
downloadgit-fb674d767180354d9ad3e69f1d41bee98df6bfe9.tar.gz
Merge branch 'maint'
* maint: git-submodule.sh: separate parens by a space to avoid confusing some shells Documentation/technical/api-diff.txt: correct name of diff_unmerge() read_gitfile_gently: use ssize_t to hold read result remove tests of always-false condition rerere.c: diagnose a corrupt MERGE_RR when hitting EOF between TAB and '\0'
Diffstat (limited to 'rerere.c')
-rw-r--r--rerere.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/rerere.c b/rerere.c
index e3407cf334..dcb525a4d0 100644
--- a/rerere.c
+++ b/rerere.c
@@ -47,8 +47,14 @@ static void read_rr(struct string_list *rr)
name = xstrdup(buf);
if (fgetc(in) != '\t')
die("corrupt MERGE_RR");
- for (i = 0; i < sizeof(buf) && (buf[i] = fgetc(in)); i++)
- ; /* do nothing */
+ for (i = 0; i < sizeof(buf); i++) {
+ int c = fgetc(in);
+ if (c < 0)
+ die("corrupt MERGE_RR");
+ buf[i] = c;
+ if (c == 0)
+ break;
+ }
if (i == sizeof(buf))
die("filename too long");
string_list_insert(rr, buf)->util = name;