|  | @@ -22,7 +22,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* OPENBSD ORIGINAL: lib/libc/gen/readpassphrase.c */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#include "includes.h"
 | 
	
		
			
				|  |  | +#include "orconfig.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifndef HAVE_READPASSPHRASE
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -35,6 +35,10 @@
 | 
	
		
			
				|  |  |  #include <string.h>
 | 
	
		
			
				|  |  |  #include <unistd.h>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#ifndef _PATH_TTY
 | 
	
		
			
				|  |  | +# define _PATH_TTY "/dev/tty"
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #ifdef TCSASOFT
 | 
	
		
			
				|  |  |  # define _T_FLUSH	(TCSAFLUSH|TCSASOFT)
 | 
	
		
			
				|  |  |  #else
 | 
	
	
		
			
				|  | @@ -61,6 +65,7 @@ static void handler(int);
 | 
	
		
			
				|  |  |  char *
 | 
	
		
			
				|  |  |  readpassphrase(const char *prompt, char *buf, size_t bufsiz, int flags)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	ssize_t bytes_written = 0;
 | 
	
		
			
				|  |  |  	ssize_t nr;
 | 
	
		
			
				|  |  |  	int input, output, save_errno, i, need_restart;
 | 
	
		
			
				|  |  |  	char ch, *p, *end;
 | 
	
	
		
			
				|  | @@ -132,7 +137,7 @@ restart:
 | 
	
		
			
				|  |  |  	/* No I/O if we are already backgrounded. */
 | 
	
		
			
				|  |  |  	if (signo[SIGTTOU] != 1 && signo[SIGTTIN] != 1) {
 | 
	
		
			
				|  |  |  		if (!(flags & RPP_STDIN))
 | 
	
		
			
				|  |  | -			(void)write(output, prompt, strlen(prompt));
 | 
	
		
			
				|  |  | +			bytes_written = write(output, prompt, strlen(prompt));
 | 
	
		
			
				|  |  |  		end = buf + bufsiz - 1;
 | 
	
		
			
				|  |  |  		p = buf;
 | 
	
		
			
				|  |  |  		while ((nr = read(input, &ch, 1)) == 1 && ch != '\n' && ch != '\r') {
 | 
	
	
		
			
				|  | @@ -151,9 +156,11 @@ restart:
 | 
	
		
			
				|  |  |  		*p = '\0';
 | 
	
		
			
				|  |  |  		save_errno = errno;
 | 
	
		
			
				|  |  |  		if (!(term.c_lflag & ECHO))
 | 
	
		
			
				|  |  | -			(void)write(output, "\n", 1);
 | 
	
		
			
				|  |  | +			bytes_written = write(output, "\n", 1);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	(void) bytes_written;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Restore old terminal settings and signals. */
 | 
	
		
			
				|  |  |  	if (memcmp(&term, &oterm, sizeof(term)) != 0) {
 | 
	
		
			
				|  |  |  		while (tcsetattr(input, _T_FLUSH, &oterm) == -1 &&
 |