diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-30 00:09:41 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-30 00:09:41 -0700 |
commit | 5b42477b59886a85d4b49a60313f9b9d4a0d576f (patch) | |
tree | 55e42d432085f0afec9a5bc9f4251adcf1dcbfa5 | |
parent | a059240f06967f485e0a094e220bae73a746ed24 (diff) | |
parent | b1905aeac5aded421cd90f8d264e27bb39672b36 (diff) | |
download | git-5b42477b59886a85d4b49a60313f9b9d4a0d576f.tar.gz git-5b42477b59886a85d4b49a60313f9b9d4a0d576f.tar.xz |
Merge branch 'jm/maint-misc-fix' into maint
* jm/maint-misc-fix:
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'
-rw-r--r-- | fsck.c | 2 | ||||
-rw-r--r-- | rerere.c | 10 | ||||
-rw-r--r-- | setup.c | 2 | ||||
-rw-r--r-- | transport.c | 2 |
4 files changed, 11 insertions, 5 deletions
@@ -349,7 +349,7 @@ int fsck_error_function(struct object *obj, int type, const char *fmt, ...) va_list ap; struct strbuf sb = STRBUF_INIT; - strbuf_addf(&sb, "object %s:", obj->sha1?sha1_to_hex(obj->sha1):"(null)"); + strbuf_addf(&sb, "object %s:", sha1_to_hex(obj->sha1)); va_start(ap, fmt); strbuf_vaddf(&sb, fmt, ap); @@ -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; @@ -275,7 +275,7 @@ const char *read_gitfile_gently(const char *path) const char *slash; struct stat st; int fd; - size_t len; + ssize_t len; if (stat(path, &st)) return NULL; diff --git a/transport.c b/transport.c index a02f79aae..69dae7110 100644 --- a/transport.c +++ b/transport.c @@ -156,7 +156,7 @@ static void set_upstreams(struct transport *transport, struct ref *refs, continue; if (!ref->peer_ref) continue; - if (!ref->new_sha1 || is_null_sha1(ref->new_sha1)) + if (is_null_sha1(ref->new_sha1)) continue; /* Follow symbolic refs (mainly for HEAD). */ |