diff options
author | Daiki Ueno <[email protected]> | 2015-07-27 07:19:52 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2015-08-25 17:11:30 +0000 |
commit | 028a0ef3336c5180797fb247448683195376c007 (patch) | |
tree | bc399a9d05095ee3b277dce3eebb50ba437419ea /src/engine-assuan.c | |
parent | Cleanup layout of gpgme.h (diff) | |
download | gpgme-028a0ef3336c5180797fb247448683195376c007.tar.gz gpgme-028a0ef3336c5180797fb247448683195376c007.zip |
Relax ttyname_r error checks
* src/engine-assuan.c (llass_new): Don't treat ttyname_r error as
fatal.
* src/engine-g13.c (g13_new): Likewise.
* src/engine-gpg.c (gpg_new): Likewise.
* src/engine-gpgsm.c (gpgsm_new): Likewise.
* src/engine-uiserver.c (uiserver_new): Likewise.
--
Even though isatty() returns 1, ttyname_r() may fail in many ways, e.g.,
when /dev/pts is not accessible under chroot. Since all our uses of
ttyname_r() require that the function works, we can treat the failure as
if isatty() fails.
Signed-off-by: Daiki Ueno <[email protected]>
Diffstat (limited to 'src/engine-assuan.c')
-rw-r--r-- | src/engine-assuan.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/engine-assuan.c b/src/engine-assuan.c index 663b2eab..99024675 100644 --- a/src/engine-assuan.c +++ b/src/engine-assuan.c @@ -282,12 +282,10 @@ llass_new (void **engine, const char *file_name, const char *home_dir) char *dft_ttytype = NULL; rc = ttyname_r (1, dft_ttyname, sizeof (dft_ttyname)); - if (rc) - { - err = gpg_error_from_errno (rc); - goto leave; - } - else + + /* Even though isatty() returns 1, ttyname_r() may fail in many + ways, e.g., when /dev/pts is not accessible under chroot. */ + if (!rc) { if (asprintf (&optstr, "OPTION ttyname=%s", dft_ttyname) < 0) { |