diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-30 00:09:55 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-30 00:09:55 -0700 |
commit | fb674d767180354d9ad3e69f1d41bee98df6bfe9 (patch) | |
tree | cc96e4d45a06efacd978939e898713f9ede9db0b /rerere.c | |
parent | be653d6cb87d17c1d70d31cb7cfcb004d48def7b (diff) | |
parent | 5b42477b59886a85d4b49a60313f9b9d4a0d576f (diff) | |
download | git-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.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -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; |