summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-05-30 07:09:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-05-30 07:09:41 (GMT)
commit5b42477b59886a85d4b49a60313f9b9d4a0d576f (patch)
tree55e42d432085f0afec9a5bc9f4251adcf1dcbfa5
parenta059240f06967f485e0a094e220bae73a746ed24 (diff)
parentb1905aeac5aded421cd90f8d264e27bb39672b36 (diff)
downloadgit-5b42477b59886a85d4b49a60313f9b9d4a0d576f.zip
git-5b42477b59886a85d4b49a60313f9b9d4a0d576f.tar.gz
git-5b42477b59886a85d4b49a60313f9b9d4a0d576f.tar.bz2
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.c2
-rw-r--r--rerere.c10
-rw-r--r--setup.c2
-rw-r--r--transport.c2
4 files changed, 11 insertions, 5 deletions
diff --git a/fsck.c b/fsck.c
index 6f266c1..60bd4bb 100644
--- a/fsck.c
+++ b/fsck.c
@@ -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);
diff --git a/rerere.c b/rerere.c
index 22dfc84..6ec452f 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;
diff --git a/setup.c b/setup.c
index 03cd84f..e7a3786 100644
--- a/setup.c
+++ b/setup.c
@@ -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 a02f79a..69dae71 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). */