gitweb: Secure against commit-ish/tree-ish with the same name as path
[gitweb.git] / builtin-checkout-index.c
index 29ea6fdc6232c1071d88524fa5c11d5ba1882dee..b097c888a0da044d6dc78c9747eb18e45b46709d 100644 (file)
@@ -45,7 +45,7 @@
 static int line_termination = '\n';
 static int checkout_stage; /* default to checkout stage0 */
 static int to_tempfile;
-static char topath[4][MAXPATHLEN+1];
+static char topath[4][PATH_MAX + 1];
 
 static struct checkout state;
 
@@ -122,7 +122,7 @@ static int checkout_file(const char *name, int prefix_length)
        return -1;
 }
 
-static int checkout_all(const char *prefix, int prefix_length)
+static void checkout_all(const char *prefix, int prefix_length)
 {
        int i, errs = 0;
        struct cache_entry* last_ce = NULL;
@@ -153,7 +153,6 @@ static int checkout_all(const char *prefix, int prefix_length)
                 * exit with the same code as die().
                 */
                exit(128);
-       return 0;
 }
 
 static const char checkout_cache_usage[] =
@@ -204,7 +203,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
                        state.refresh_cache = 1;
                        if (newfd < 0)
                                newfd = hold_lock_file_for_update
-                                       (&lock_file, get_index_file());
+                                       (&lock_file, get_index_file(), 1);
                        if (newfd < 0)
                                die("cannot open index.lock file.");
                        continue;