Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Block sigalarm when reading passphrase.
Vsevolod Stakhov committed 11 years ago
commit 49fec7d3fddd032a74bfa14c83b6333e80caaf99
parent aa5c295
1 file changed +10 -1
modified src/repo.c
@@ -48,10 +48,17 @@ password_cb(char *buf, int size, int rwflag, void *key)
{
	int len = 0;
	char pass[BUFSIZ];
+
	sigset_t sig, oldsig;
+

	(void)rwflag;
	(void)key;

-
	if (readpassphrase("Enter passphrase: ", pass, BUFSIZ, RPP_ECHO_OFF) == NULL)
+
	/* Block sigalarm temporary */
+
	sigemptyset(&sig);
+
	sigaddset(&sig, SIGALRM);
+
	sigprocmask(SIG_BLOCK, &sig, &oldsig);
+

+
	if (readpassphrase("\nEnter passphrase: ", pass, BUFSIZ, RPP_ECHO_OFF) == NULL)
		return 0;

	len = strlen(pass);
@@ -63,6 +70,8 @@ password_cb(char *buf, int size, int rwflag, void *key)
	memcpy(buf, pass, len);
	memset(pass, 0, BUFSIZ);

+
	sigprocmask(SIG_SETMASK, &oldsig, NULL);
+

	return (len);
}