X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=unpack-file.c;h=25c56b374ae01ba890ee243368077c1316d9f0ba;hb=ced38ea252cb8b0315f4d2a54648b11c6c090657;hp=3accb974dd448233a01e82ab1d6e3599d825fa9e;hpb=f0c979f4dbbb7d6d9565d945c540f0a5748f1b80;p=git.git diff --git a/unpack-file.c b/unpack-file.c index 3accb974d..25c56b374 100644 --- a/unpack-file.c +++ b/unpack-file.c @@ -1,22 +1,23 @@ #include "cache.h" +#include "blob.h" static char *create_temp_file(unsigned char *sha1) { static char path[50]; void *buf; - char type[100]; + enum object_type type; unsigned long size; int fd; - buf = read_sha1_file(sha1, type, &size); - if (!buf || strcmp(type, "blob")) + buf = read_sha1_file(sha1, &type, &size); + if (!buf || type != OBJ_BLOB) die("unable to read blob object %s", sha1_to_hex(sha1)); strcpy(path, ".merge_file_XXXXXX"); fd = mkstemp(path); if (fd < 0) die("unable to create temp-file"); - if (write(fd, buf, size) != size) + if (write_in_full(fd, buf, size) != size) die("unable to write temp-file"); close(fd); return path; @@ -26,8 +27,10 @@ int main(int argc, char **argv) { unsigned char sha1[20]; - if (argc != 2 || get_sha1(argv[1], sha1)) + if (argc != 2) usage("git-unpack-file "); + if (get_sha1(argv[1], sha1)) + die("Not a valid object name %s", argv[1]); setup_git_directory(); git_config(git_default_config);