2001-12-13 Marcus Brinkmann <marcus@g10code.de>
* rungpg.c (_gpgme_gpg_spawn): Do not add the fds to the child list that are not dup'ed, for those the close-on-exec flag is set now. * version.c (_gpgme_get_program_version): Remove first entry in CFD, as the close-on-exec flag is now set for this fd.
This commit is contained in:
parent
77a72c0d5e
commit
f2232e8bc2
@ -1,3 +1,11 @@
|
|||||||
|
2001-12-13 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
|
* rungpg.c (_gpgme_gpg_spawn): Do not add the fds to the child
|
||||||
|
list that are not dup'ed, for those the close-on-exec flag is set
|
||||||
|
now.
|
||||||
|
* version.c (_gpgme_get_program_version): Remove first entry in
|
||||||
|
CFD, as the close-on-exec flag is now set for this fd.
|
||||||
|
|
||||||
2001-12-13 Marcus Brinkmann <marcus@g10code.de>
|
2001-12-13 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): Do not add `armor'
|
* engine-gpgsm.c (_gpgme_gpgsm_op_encrypt): Do not add `armor'
|
||||||
|
@ -818,9 +818,9 @@ _gpgme_gpg_spawn( GpgObject gpg, void *opaque )
|
|||||||
if ( rc )
|
if ( rc )
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
n = 4; /* status fd, 2*colon_fd and end of list */
|
n = 3; /* status_fd, colon_fd and end of list */
|
||||||
for (i=0; gpg->fd_data_map[i].data; i++ )
|
for (i=0; gpg->fd_data_map[i].data; i++ )
|
||||||
n += 2;
|
n++;
|
||||||
fd_child_list = xtrycalloc ( n+n, sizeof *fd_child_list );
|
fd_child_list = xtrycalloc ( n+n, sizeof *fd_child_list );
|
||||||
if (!fd_child_list)
|
if (!fd_child_list)
|
||||||
return mk_error (Out_Of_Core);
|
return mk_error (Out_Of_Core);
|
||||||
@ -828,21 +828,12 @@ _gpgme_gpg_spawn( GpgObject gpg, void *opaque )
|
|||||||
|
|
||||||
/* build the fd list for the child */
|
/* build the fd list for the child */
|
||||||
n=0;
|
n=0;
|
||||||
fd_child_list[n].fd = gpg->status.fd[0];
|
|
||||||
fd_child_list[n].dup_to = -1;
|
|
||||||
n++;
|
|
||||||
if ( gpg->colon.fnc ) {
|
if ( gpg->colon.fnc ) {
|
||||||
fd_child_list[n].fd = gpg->colon.fd[0];
|
|
||||||
fd_child_list[n].dup_to = -1;
|
|
||||||
n++;
|
|
||||||
fd_child_list[n].fd = gpg->colon.fd[1];
|
fd_child_list[n].fd = gpg->colon.fd[1];
|
||||||
fd_child_list[n].dup_to = 1; /* dup to stdout */
|
fd_child_list[n].dup_to = 1; /* dup to stdout */
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
for (i=0; gpg->fd_data_map[i].data; i++ ) {
|
for (i=0; gpg->fd_data_map[i].data; i++ ) {
|
||||||
fd_child_list[n].fd = gpg->fd_data_map[i].fd;
|
|
||||||
fd_child_list[n].dup_to = -1;
|
|
||||||
n++;
|
|
||||||
if (gpg->fd_data_map[i].dup_to != -1) {
|
if (gpg->fd_data_map[i].dup_to != -1) {
|
||||||
fd_child_list[n].fd = gpg->fd_data_map[i].peer_fd;
|
fd_child_list[n].fd = gpg->fd_data_map[i].peer_fd;
|
||||||
fd_child_list[n].dup_to = gpg->fd_data_map[i].dup_to;
|
fd_child_list[n].dup_to = gpg->fd_data_map[i].dup_to;
|
||||||
|
@ -203,8 +203,7 @@ _gpgme_get_program_version (const char *const path)
|
|||||||
int nread;
|
int nread;
|
||||||
char *argv[] = {(char *) path, "--version", 0};
|
char *argv[] = {(char *) path, "--version", 0};
|
||||||
struct spawn_fd_item_s pfd[] = { {0, -1}, {-1, -1} };
|
struct spawn_fd_item_s pfd[] = { {0, -1}, {-1, -1} };
|
||||||
struct spawn_fd_item_s cfd[] = { {0, -1}, {-1, 1 /* STDOUT_FILENO */},
|
struct spawn_fd_item_s cfd[] = { {-1, 1 /* STDOUT_FILENO */}, {-1, -1} };
|
||||||
{-1, -1} };
|
|
||||||
int status, signal;
|
int status, signal;
|
||||||
|
|
||||||
if (!path)
|
if (!path)
|
||||||
@ -214,8 +213,7 @@ _gpgme_get_program_version (const char *const path)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
pfd[0].fd = rp[1];
|
pfd[0].fd = rp[1];
|
||||||
cfd[0].fd = rp[0];
|
cfd[0].fd = rp[1];
|
||||||
cfd[1].fd = rp[1];
|
|
||||||
|
|
||||||
pid = _gpgme_io_spawn (path, argv, cfd, pfd);
|
pid = _gpgme_io_spawn (path, argv, cfd, pfd);
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user