On Thu, Mar 13, 2014 at 02:51:29AM +0800, Yuxuan Shui wrote: > Since fsck_ident doesn't change the content of **ident, the type of > ident could be const char **. Unfortunately, const double-pointers in C are a bit tricky, and a pointer to "char *" cannot automatically be passed as a pointer to "const char *". I think you want this on top: diff --git a/fsck.c b/fsck.c index 1789c34..7776660 100644 --- a/fsck.c +++ b/fsck.c @@ -281,7 +281,7 @@ static int fsck_ident(const char **ident, struct object *obj, fsck_error error_f static int fsck_commit(struct commit *commit, fsck_error error_func) { - char *buffer = commit->buffer; + const char *buffer = commit->buffer; unsigned char tree_sha1[20], sha1[20]; struct commit_graft *graft; int parents = 0; Otherwise, gcc will complain about incompatible pointer types. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html