git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Derrick Stolee <stolee@gmail.com>
To: Jeff King <peff@peff.net>, git@vger.kernel.org
Subject: Re: [PATCH 14/14] verify-commit: simplify parameters to run_gpg_verify()
Date: Fri, 10 May 2019 08:19:56 -0400	[thread overview]
Message-ID: <f0d06858-038b-793e-b1fe-faedff7963ef@gmail.com> (raw)
In-Reply-To: <20190509213229.GN15837@sigill.intra.peff.net>

On 5/9/2019 5:32 PM, Jeff King wrote:
> Instead, let's do our type check by loading the object via
> parse_object(). That will attach the buffer to the struct so it can be
> used later by check_commit_signature(). And it ensures that
> lookup_commit() will return something sane.

This is a good idea.
  
> -static int run_gpg_verify(const struct object_id *oid, const char *buf, unsigned long size, unsigned flags)
> +static int run_gpg_verify(struct commit *commit, unsigned flags)
>  {
>  	struct signature_check signature_check;
>  	int ret;
>  
>  	memset(&signature_check, 0, sizeof(signature_check));
>  
> -	ret = check_commit_signature(lookup_commit(the_repository, oid),
> -				     &signature_check);
> +	ret = check_commit_signature(commit, &signature_check);
>  	print_signature_buffer(&signature_check, flags);

Bonus drop of the_repository.

>  
>  	signature_check_clear(&signature_check);
> @@ -38,26 +37,20 @@ static int run_gpg_verify(const struct object_id *oid, const char *buf, unsigned
>  
>  static int verify_commit(const char *name, unsigned flags)
>  {
> -	enum object_type type;
>  	struct object_id oid;
> -	char *buf;
> -	unsigned long size;
> -	int ret;
> +	struct object *obj;
>  
>  	if (get_oid(name, &oid))
>  		return error("commit '%s' not found.", name);
>  
> -	buf = read_object_file(&oid, &type, &size);
> -	if (!buf)
> +	obj = parse_object(the_repository, &oid);

...and it is back, but "higher" up. That's fine.

> +	if (!obj)
>  		return error("%s: unable to read file.", name);
> -	if (type != OBJ_COMMIT)
> +	if (obj->type != OBJ_COMMIT)
>  		return error("%s: cannot verify a non-commit object of type %s.",
> -				name, type_name(type));
> -
> -	ret = run_gpg_verify(&oid, buf, size, flags);
> +				name, type_name(obj->type));
>  
> -	free(buf);
> -	return ret;
> +	return run_gpg_verify((struct commit *)obj, flags);
>  }

You pointed out that you thought this patch was subtle. I agree that
there is a slightly changed functionality, but it seems to be
improving a possibly wrong behavior.

Thanks,
-Stolee

  reply	other threads:[~2019-05-10 12:20 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-09 21:25 [PATCH 0/14] "final" batch of unused parameter cleanups Jeff King
2019-05-09 21:27 ` [PATCH 01/14] cmd_{read,write}_tree: rename "unused" variable that is used Jeff King
2019-05-10 12:07   ` Derrick Stolee
2019-05-13  5:14   ` Junio C Hamano
2019-05-09 21:27 ` [PATCH 02/14] submodule: drop unused prefix parameter from some functions Jeff King
2019-05-09 21:28 ` [PATCH 03/14] builtin: consistently pass cmd_* prefix to parse_options Jeff King
2019-05-10 12:10   ` Derrick Stolee
2019-05-09 21:29 ` [PATCH 04/14] clone: drop dest parameter from copy_alternates() Jeff King
2019-05-09 21:29 ` [PATCH 05/14] read-cache: drop unused parameter from threaded load Jeff King
2019-05-09 21:30 ` [PATCH 06/14] wt-status: drop unused status parameter Jeff King
2019-05-09 21:30 ` [PATCH 07/14] mktree: drop unused length parameter Jeff King
2019-05-09 21:30 ` [PATCH 08/14] name-rev: drop unused parameters from is_better_name() Jeff King
2019-05-09 21:31 ` [PATCH 09/14] pack-objects: drop unused rev_info parameters Jeff King
2019-05-09 21:31 ` [PATCH 10/14] receive-pack: drop unused "commands" from prepare_shallow_update() Jeff King
2019-05-09 21:31 ` [PATCH 11/14] remove_all_fetch_refspecs(): drop unused "remote" parameter Jeff King
2019-05-09 21:32 ` [PATCH 12/14] rev-list: drop unused void pointer from finish_commit() Jeff King
2019-05-09 21:32 ` [PATCH 13/14] show-branch: drop unused parameter from show_independent() Jeff King
2019-05-09 21:32 ` [PATCH 14/14] verify-commit: simplify parameters to run_gpg_verify() Jeff King
2019-05-10 12:19   ` Derrick Stolee [this message]
2019-05-10 12:20 ` [PATCH 0/14] "final" batch of unused parameter cleanups Derrick Stolee

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=f0d06858-038b-793e-b1fe-faedff7963ef@gmail.com \
    --to=stolee@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.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).