index-pack: fix allocation of sorted_by_pos array
[gitweb.git] / builtin / cat-file.c
index 707330499fad66a0bddbb5cf96ff0569e2fe3433..31b133b357f34e9bc0a63dec5ce2dbceba43e765 100644 (file)
@@ -4,12 +4,8 @@
  * Copyright (C) Linus Torvalds, 2005
  */
 #include "cache.h"
-#include "exec_cmd.h"
-#include "tag.h"
-#include "tree.h"
 #include "builtin.h"
 #include "parse-options.h"
-#include "diff.h"
 #include "userdiff.h"
 #include "streaming.h"
 
@@ -79,11 +75,10 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name)
                if (type_from_string(exp_type) == OBJ_BLOB) {
                        unsigned char blob_sha1[20];
                        if (sha1_object_info(sha1, NULL) == OBJ_TAG) {
-                               enum object_type type;
-                               unsigned long size;
                                char *buffer = read_sha1_file(sha1, &type, &size);
-                               if (memcmp(buffer, "object ", 7) ||
-                                   get_sha1_hex(buffer + 7, blob_sha1))
+                               const char *target;
+                               if (!skip_prefix(buffer, "object ", &target) ||
+                                   get_sha1_hex(target, blob_sha1))
                                        die("%s not a valid tag", sha1_to_hex(sha1));
                                free(buffer);
                        } else