X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=unpack-file.c;h=25c56b374ae01ba890ee243368077c1316d9f0ba;hb=bc32fed5516375ef78bc0f6270eb57bf1bb12d47;hp=23a85623019c3b7a465fba86132df3f4b75d94a5;hpb=12d81ce59846e17676c5534257ca2f1783829d63;p=git.git diff --git a/unpack-file.c b/unpack-file.c index 23a856230..25c56b374 100644 --- a/unpack-file.c +++ b/unpack-file.c @@ -5,19 +5,19 @@ 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_type)) + 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; @@ -27,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);