diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/engine-assuan.c | 10 | ||||
| -rw-r--r-- | src/engine-g13.c | 10 | ||||
| -rw-r--r-- | src/engine-gpg.c | 13 | ||||
| -rw-r--r-- | src/engine-gpgsm.c | 10 | ||||
| -rw-r--r-- | src/engine-uiserver.c | 10 | 
5 files changed, 24 insertions, 29 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)  	    { diff --git a/src/engine-g13.c b/src/engine-g13.c index a9717eec..4a7b75c5 100644 --- a/src/engine-g13.c +++ b/src/engine-g13.c @@ -286,12 +286,10 @@ g13_new (void **engine, const char *file_name, const char *home_dir)        int rc;        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)  	    { diff --git a/src/engine-gpg.c b/src/engine-gpg.c index ffae2fe4..9efced25 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -513,6 +513,8 @@ gpg_new (void **engine, const char *file_name, const char *home_dir)  	rc = add_arg (gpg, dft_display);        free (dft_display); +      if (rc) +	goto leave;      }    if (isatty (1)) @@ -520,9 +522,10 @@ gpg_new (void **engine, const char *file_name, const char *home_dir)        int err;        err = ttyname_r (1, dft_ttyname, sizeof (dft_ttyname)); -      if (err) -	rc = gpg_error_from_errno (err); -      else + +      /* Even though isatty() returns 1, ttyname_r() may fail in many +	 ways, e.g., when /dev/pts is not accessible under chroot.  */ +      if (!err)  	{            if (*dft_ttyname)              { @@ -547,9 +550,9 @@ gpg_new (void **engine, const char *file_name, const char *home_dir)  	      free (dft_ttytype);  	    } +	  if (rc) +	    goto leave;  	} -      if (rc) -	goto leave;      }   leave: diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c index 24d3b2a8..476e9ef3 100644 --- a/src/engine-gpgsm.c +++ b/src/engine-gpgsm.c @@ -408,12 +408,10 @@ gpgsm_new (void **engine, const char *file_name, const char *home_dir)        int rc;        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)  	    { diff --git a/src/engine-uiserver.c b/src/engine-uiserver.c index a7184b7a..e4fd47c3 100644 --- a/src/engine-uiserver.c +++ b/src/engine-uiserver.c @@ -326,12 +326,10 @@ uiserver_new (void **engine, const char *file_name, const char *home_dir)        int rc;        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)  	    { | 
