From: Shawn O. Pearce Date: Mon, 5 Mar 2007 17:49:02 +0000 (-0500) Subject: Merge branch 'maint' X-Git-Tag: v1.5.1-rc1~92^2 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=6b4318e604ca729d5d7508a744f0155555094fae;p=git.git Merge branch 'maint' * maint: fast-import: Fail if a non-existant commit is used for merge fast-import: Avoid infinite loop after reset [sp: Minor evil merge to deal with type_names array moving to be private in 'master'.] --- 6b4318e604ca729d5d7508a744f0155555094fae diff --cc fast-import.c index 65e99c2e8,d9492b988..cc3347b23 --- a/fast-import.c +++ b/fast-import.c @@@ -1746,7 -1752,14 +1752,14 @@@ static struct hash_list *cmd_merge(unsi if (oe->type != OBJ_COMMIT) die("Mark :%" PRIuMAX " not a commit", idnum); hashcpy(n->sha1, oe->sha1); - } else if (get_sha1(from, n->sha1)) + } else if (!get_sha1(from, n->sha1)) { + unsigned long size; + char *buf = read_object_with_reference(n->sha1, - type_names[OBJ_COMMIT], &size, n->sha1); ++ commit_type, &size, n->sha1); + if (!buf || size < 46) + die("Not a valid commit: %s", from); + free(buf); + } else die("Invalid ref name or SHA1 expression: %s", from); n->next = NULL;