зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
05219a1276
Коммит
aedb5dc343
|
@ -150,17 +150,15 @@ const char *get_signing_key(void)
|
||||||
int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
|
int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
|
||||||
{
|
{
|
||||||
struct child_process gpg = CHILD_PROCESS_INIT;
|
struct child_process gpg = CHILD_PROCESS_INIT;
|
||||||
const char *args[4];
|
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
size_t i, j, bottom;
|
size_t i, j, bottom;
|
||||||
|
|
||||||
gpg.argv = args;
|
|
||||||
gpg.in = -1;
|
gpg.in = -1;
|
||||||
gpg.out = -1;
|
gpg.out = -1;
|
||||||
args[0] = gpg_program;
|
argv_array_pushl(&gpg.args,
|
||||||
args[1] = "-bsau";
|
gpg_program,
|
||||||
args[2] = signing_key;
|
"-bsau", signing_key,
|
||||||
args[3] = NULL;
|
NULL);
|
||||||
|
|
||||||
if (start_command(&gpg))
|
if (start_command(&gpg))
|
||||||
return error(_("could not run 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 strbuf *gpg_output, struct strbuf *gpg_status)
|
||||||
{
|
{
|
||||||
struct child_process gpg = CHILD_PROCESS_INIT;
|
struct child_process gpg = CHILD_PROCESS_INIT;
|
||||||
const char *args_gpg[] = {NULL, "--status-fd=1", "--verify", "FILE", "-", NULL};
|
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
int fd, ret;
|
int fd, ret;
|
||||||
struct strbuf buf = STRBUF_INIT;
|
struct strbuf buf = STRBUF_INIT;
|
||||||
struct strbuf *pbuf = &buf;
|
struct strbuf *pbuf = &buf;
|
||||||
|
|
||||||
args_gpg[0] = gpg_program;
|
|
||||||
fd = git_mkstemp(path, PATH_MAX, ".git_vtag_tmpXXXXXX");
|
fd = git_mkstemp(path, PATH_MAX, ".git_vtag_tmpXXXXXX");
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return error_errno(_("could not create temporary file '%s'"), path);
|
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);
|
return error_errno(_("failed writing detached signature to '%s'"), path);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
gpg.argv = args_gpg;
|
argv_array_pushl(&gpg.args,
|
||||||
|
gpg_program,
|
||||||
|
"--status-fd=1",
|
||||||
|
"--verify", path, "-",
|
||||||
|
NULL);
|
||||||
gpg.in = -1;
|
gpg.in = -1;
|
||||||
gpg.out = -1;
|
gpg.out = -1;
|
||||||
if (gpg_output)
|
if (gpg_output)
|
||||||
gpg.err = -1;
|
gpg.err = -1;
|
||||||
args_gpg[3] = path;
|
|
||||||
if (start_command(&gpg)) {
|
if (start_command(&gpg)) {
|
||||||
unlink(path);
|
unlink(path);
|
||||||
return error(_("could not run gpg."));
|
return error(_("could not run gpg."));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче