From: "René Scharfe" <l.s.r@web.de>
To: "brian m. carlson" <sandals@crustytoothpaste.net>, git@vger.kernel.org
Cc: Duy Nguyen <pclouds@gmail.com>
Subject: Re: [PATCH 24/31] archive-tar: make hash size independent
Date: Tue, 12 Feb 2019 08:20:38 +0100 [thread overview]
Message-ID: <2a6cf99a-c297-225c-b3c9-c30e1ac83948@web.de> (raw)
In-Reply-To: <20190212012256.1005924-25-sandals@crustytoothpaste.net>
Am 12.02.2019 um 02:22 schrieb brian m. carlson:
> diff --git a/builtin/get-tar-commit-id.c b/builtin/get-tar-commit-id.c
> index 2706fcfaf2..2760549e91 100644
> --- a/builtin/get-tar-commit-id.c
> +++ b/builtin/get-tar-commit-id.c
> @@ -5,6 +5,7 @@
> #include "commit.h"
> #include "tar.h"
> #include "builtin.h"
> +#include "strbuf.h"
> #include "quote.h"
>
> static const char builtin_get_tar_commit_id_usage[] =
> @@ -21,6 +22,8 @@ int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix)
> char *content = buffer + RECORDSIZE;
> const char *comment;
> ssize_t n;
> + char *hdrprefix;
> + int ret;
>
> if (argc != 1)
> usage(builtin_get_tar_commit_id_usage);
> @@ -32,10 +35,14 @@ int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix)
> die_errno("git get-tar-commit-id: EOF before reading tar header");
> if (header->typeflag[0] != 'g')
> return 1;
> - if (!skip_prefix(content, "52 comment=", &comment))
> +
> + hdrprefix = xstrfmt("%zu comment=", the_hash_algo->hexsz + strlen(" comment=") + 2 + 1);
> + ret = skip_prefix(content, hdrprefix, &comment);
> + free(hdrprefix);
> + if (!ret)
> return 1;
>
> - if (write_in_full(1, comment, 41) < 0)
> + if (write_in_full(1, comment, the_hash_algo->hexsz + 1) < 0)
> die_errno("git get-tar-commit-id: write error");
>
> return 0;
That command currently prints the pax comment in tar archives if it
looks like a SHA1 hash based on its length. It should continue to do
so, and _also_ show longer hashes. Your change makes it _only_ show
those longer hashes.
So it could check for all known valid hash lengths in turn, or accept
any payload length between 40 and the_hash_algo->hexsz, or loosen up
totally and show comments of any length.
René
next prev parent reply other threads:[~2019-02-12 7:20 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-12 1:22 [PATCH 00/31] Hash function transition part 16 brian m. carlson
2019-02-12 1:22 ` [PATCH 01/31] t/lib-submodule-update: use appropriate length constant brian m. carlson
2019-02-12 1:22 ` [PATCH 02/31] pack-bitmap: make bitmap header handling hash agnostic brian m. carlson
2019-02-12 1:22 ` [PATCH 03/31] pack-bitmap: convert struct stored_bitmap to object_id brian m. carlson
2019-02-12 1:22 ` [PATCH 04/31] pack-bitmap: replace sha1_to_hex brian m. carlson
2019-02-12 6:37 ` Jeff King
2019-02-13 0:00 ` brian m. carlson
2019-02-14 4:41 ` Jeff King
2019-02-12 1:22 ` [PATCH 05/31] pack-bitmap: switch hard-coded constants to the_hash_algo brian m. carlson
2019-02-12 11:13 ` Ævar Arnfjörð Bjarmason
2019-02-12 1:22 ` [PATCH 06/31] submodule: avoid hard-coded constants brian m. carlson
2019-02-12 1:22 ` [PATCH 07/31] notes-merge: switch to use the_hash_algo brian m. carlson
2019-02-12 1:22 ` [PATCH 08/31] notes: make hash size independent brian m. carlson
2019-02-12 1:37 ` Eric Sunshine
2019-02-12 1:42 ` brian m. carlson
2019-02-12 1:22 ` [PATCH 09/31] notes: replace sha1_to_hex brian m. carlson
2019-02-12 1:22 ` [PATCH 10/31] object-store: rename and expand packed_git's sha1 member brian m. carlson
2019-02-12 3:32 ` Eric Sunshine
2019-02-14 3:33 ` brian m. carlson
2019-02-12 1:22 ` [PATCH 11/31] builtin/name-rev: make hash-size independent brian m. carlson
2019-02-12 1:22 ` [PATCH 12/31] fast-import: " brian m. carlson
2019-02-12 3:44 ` Eric Sunshine
2019-02-12 23:36 ` brian m. carlson
2019-02-12 1:22 ` [PATCH 13/31] fast-import: replace sha1_to_hex brian m. carlson
2019-02-12 1:22 ` [PATCH 14/31] builtin/am: make hash size independent brian m. carlson
2019-02-12 1:22 ` [PATCH 15/31] builtin/pull: make hash-size independent brian m. carlson
2019-02-12 3:47 ` Eric Sunshine
2019-02-12 1:22 ` [PATCH 16/31] http-push: convert to use the_hash_algo brian m. carlson
2019-02-12 1:22 ` [PATCH 17/31] http-backend: allow 64-character hex names brian m. carlson
2019-02-12 1:22 ` [PATCH 18/31] http-push: remove remaining uses of sha1_to_hex brian m. carlson
2019-02-12 1:22 ` [PATCH 19/31] http-walker: replace sha1_to_hex brian m. carlson
2019-02-12 3:51 ` Eric Sunshine
2019-02-12 1:22 ` [PATCH 20/31] http: replace hard-coded constant with the_hash_algo brian m. carlson
2019-02-12 1:22 ` [PATCH 21/31] http: compute hash of downloaded objects using the_hash_algo brian m. carlson
2019-02-12 1:22 ` [PATCH 22/31] http: replace sha1_to_hex brian m. carlson
2019-02-12 1:22 ` [PATCH 23/31] remote-curl: make hash size independent brian m. carlson
2019-02-12 11:11 ` Ævar Arnfjörð Bjarmason
2019-02-12 1:22 ` [PATCH 24/31] archive-tar: " brian m. carlson
2019-02-12 7:20 ` René Scharfe [this message]
2019-02-12 17:33 ` René Scharfe
2019-02-13 0:11 ` brian m. carlson
2019-02-12 1:22 ` [PATCH 25/31] archive: convert struct archiver_args to object_id brian m. carlson
2019-02-12 1:22 ` [PATCH 26/31] refspec: make hash size independent brian m. carlson
2019-02-12 1:22 ` [PATCH 27/31] builtin/difftool: use parse_oid_hex brian m. carlson
2019-02-12 8:27 ` Eric Sunshine
2019-02-12 1:22 ` [PATCH 28/31] dir: make untracked cache extension hash size independent brian m. carlson
2019-02-12 11:08 ` Ævar Arnfjörð Bjarmason
2019-02-13 0:30 ` brian m. carlson
2019-02-12 1:22 ` [PATCH 29/31] read-cache: read data in a hash-independent way brian m. carlson
2019-02-12 1:22 ` [PATCH 30/31] Git.pm: make hash size independent brian m. carlson
2019-02-12 10:59 ` Ævar Arnfjörð Bjarmason
2019-02-18 19:09 ` brian m. carlson
2019-02-18 21:00 ` Ævar Arnfjörð Bjarmason
2019-02-12 1:22 ` [PATCH 31/31] gitweb: " brian m. carlson
2019-02-12 10:57 ` Ævar Arnfjörð Bjarmason
2019-02-12 11:15 ` [PATCH 00/31] Hash function transition part 16 Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2a6cf99a-c297-225c-b3c9-c30e1ac83948@web.de \
--to=l.s.r@web.de \
--cc=git@vger.kernel.org \
--cc=pclouds@gmail.com \
--cc=sandals@crustytoothpaste.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).