From d972b6d256c6b4df99074ddcfadf44c337aba214 Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Fri, 20 May 2016 19:10:29 +0000 Subject: [PATCH] ed(1): Cleanups for the DES mode. - Use arc4random_uniform(3). - Prevent a segmentation fault when ed receives a signal while being in getpass(). [1] Obtained from: OpenBSD [1] (CVS Rev. 1.15) MFC after: 2 weeks --- bin/ed/cbc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/ed/cbc.c b/bin/ed/cbc.c index 39857212830a..7869e96864e5 100644 --- a/bin/ed/cbc.c +++ b/bin/ed/cbc.c @@ -99,7 +99,7 @@ init_des_cipher(void) /* initialize the padding vector */ for (i = 0; i < 8; i++) - pvec[i] = (char) (arc4random() % 256); + pvec[i] = (char)arc4random_uniform(256); #endif } @@ -164,7 +164,7 @@ get_keyword(void) /* * get the key */ - if (*(p = getpass("Enter key: "))) { + if ((p = getpass("Enter key: ")) != NULL && *p != '\0') { /* * copy it, nul-padded, into the key area