const char *key_file, int timeout, int how2verify,
struct crypt_device *cd)
{
- int fd;
+ int fd = -1;
const int verify = how2verify & CRYPT_FLAG_VERIFY;
const int verify_if_possible = how2verify & CRYPT_FLAG_VERIFY_IF_POSSIBLE;
char *pass = NULL;
if(r == 0 || (newline_stop && pass[i] == '\n'))
break;
}
- if(key_file)
- close(fd);
/* Fail if piped input dies reading nothing */
if(!i && !regular_file) {
log_dbg("Error reading passphrase.");
*key = pass;
*passLen = i;
}
+ if(fd != STDIN_FILENO)
+ close(fd);
return;
out_err:
+ if(fd >= 0 && fd != STDIN_FILENO)
+ close(fd);
if(pass)
safe_free(pass);
*key = NULL;