]> git.ipfire.org Git - thirdparty/git.git/commitdiff
index-pack, unpack-objects: use skip_prefix to avoid magic number
authorJeff King <peff@peff.net>
Sun, 19 Jan 2025 13:25:53 +0000 (08:25 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 21 Jan 2025 16:42:56 +0000 (08:42 -0800)
When parsing --pack_header=, we manually skip 14 bytes to the data.
Let's use skip_prefix() to do this automatically.

Note that we overwrite our pointer to the front of the string, so we
have to add more context to the error message. We could avoid this by
declaring an extra pointer to hold the value, but I think the modified
message is actually preferable; it should give translators a bit more
context.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/index-pack.c
builtin/unpack-objects.c

index 5f0ff1ce04a22ff96d8661bcd06145a311b291ce..d80e05458121ea32da8a8a3c5cfcd7016895166e 100644 (file)
@@ -1802,11 +1802,11 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
                                        warning(_("no threads support, ignoring %s"), arg);
                                        nr_threads = 1;
                                }
-                       } else if (starts_with(arg, "--pack_header=")) {
-                               if (parse_pack_header_option(arg + 14,
+                       } else if (skip_prefix(arg, "--pack_header=", &arg)) {
+                               if (parse_pack_header_option(arg,
                                                             input_buffer,
                                                             &input_len) < 0)
-                                       die(_("bad %s"), arg);
+                                       die(_("bad --pack_header: %s"), arg);
                        } else if (!strcmp(arg, "-v")) {
                                verbose = 1;
                        } else if (!strcmp(arg, "--progress-title")) {
index fc3de6dac8913e32aa374df0fc845b04e705107b..028cfe175e035e3c551d0bedc44bacf29276513a 100644 (file)
@@ -640,10 +640,10 @@ int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED)
                                fsck_set_msg_types(&fsck_options, arg);
                                continue;
                        }
-                       if (starts_with(arg, "--pack_header=")) {
-                               if (parse_pack_header_option(arg + 14,
+                       if (skip_prefix(arg, "--pack_header=", &arg)) {
+                               if (parse_pack_header_option(arg,
                                                             buffer, &len) < 0)
-                                       die(_("bad %s"), arg);
+                                       die(_("bad --pack_header: %s"), arg);
                                continue;
                        }
                        if (skip_prefix(arg, "--max-input-size=", &arg)) {