summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2016-06-17 23:38:35 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-06-18 00:03:55 (GMT)
commitaedb5dc343be58c17dc974be401f6d2a9fa26d1e (patch)
tree8a710cdc6ceac8d13546e7e3c9d9b835353eb49d
parent05219a1276341e72d8082d76b7f5ed394b7437a4 (diff)
downloadgit-aedb5dc343be58c17dc974be401f6d2a9fa26d1e.zip
git-aedb5dc343be58c17dc974be401f6d2a9fa26d1e.tar.gz
git-aedb5dc343be58c17dc974be401f6d2a9fa26d1e.tar.bz2
gpg-interface: use child_process.args
Our argv allocations are relatively straightforward, but this avoids us having to manually keep the count up to date (or create new to-be-replaced slots in the declaration) when we add new arguments. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--gpg-interface.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/gpg-interface.c b/gpg-interface.c
index c4b1e8c..0ed9fa7 100644
--- a/gpg-interface.c
+++ b/gpg-interface.c
@@ -150,17 +150,15 @@ const char *get_signing_key(void)
int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
{
struct child_process gpg = CHILD_PROCESS_INIT;
- const char *args[4];
ssize_t len;
size_t i, j, bottom;
- gpg.argv = args;
gpg.in = -1;
gpg.out = -1;
- args[0] = gpg_program;
- args[1] = "-bsau";
- args[2] = signing_key;
- args[3] = NULL;
+ argv_array_pushl(&gpg.args,
+ gpg_program,
+ "-bsau", signing_key,
+ NULL);
if (start_command(&gpg))
return error(_("could not run gpg."));
@@ -210,13 +208,11 @@ int verify_signed_buffer(const char *payload, size_t payload_size,
struct strbuf *gpg_output, struct strbuf *gpg_status)
{
struct child_process gpg = CHILD_PROCESS_INIT;
- const char *args_gpg[] = {NULL, "--status-fd=1", "--verify", "FILE", "-", NULL};
char path[PATH_MAX];
int fd, ret;
struct strbuf buf = STRBUF_INIT;
struct strbuf *pbuf = &buf;
- args_gpg[0] = gpg_program;
fd = git_mkstemp(path, PATH_MAX, ".git_vtag_tmpXXXXXX");
if (fd < 0)
return error_errno(_("could not create temporary file '%s'"), path);
@@ -224,12 +220,15 @@ int verify_signed_buffer(const char *payload, size_t payload_size,
return error_errno(_("failed writing detached signature to '%s'"), path);
close(fd);
- gpg.argv = args_gpg;
+ argv_array_pushl(&gpg.args,
+ gpg_program,
+ "--status-fd=1",
+ "--verify", path, "-",
+ NULL);
gpg.in = -1;
gpg.out = -1;
if (gpg_output)
gpg.err = -1;
- args_gpg[3] = path;
if (start_command(&gpg)) {
unlink(path);
return error(_("could not run gpg."));