From 043448503f1dded67abfd0c2630b326ff94946a7 Mon Sep 17 00:00:00 2001 From: Richard T Bonhomme Date: Thu, 9 Feb 2023 00:20:28 +0000 Subject: [PATCH] easyrsa_mktemp(): Correct logic for file creation Each try is now aimed at creating a unique target file. Signed-off-by: Richard T Bonhomme --- easyrsa3/easyrsa | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/easyrsa3/easyrsa b/easyrsa3/easyrsa index fa67df2..bc9fd5f 100755 --- a/easyrsa3/easyrsa +++ b/easyrsa3/easyrsa @@ -651,20 +651,19 @@ easyrsa_mktemp - Non-existant temporary session: # Assign internal temp-file name t="${EASYRSA_TEMP_DIR_session}/temp.${mktemp_counter}" - # Must not exist + # Create temp-file or die for i in x y z; do - - shotfile="${t}.${i}" + shotfile="${t}.0" + target="$t.$i" if [ -e "$shotfile" ]; then - continue + break else - printf "" > "$shotfile" || continue - fi - - # atomic: - if mv "$shotfile" "$t"; then - # Assign external temp-file name - force_set_var "$1" "$t" && return + printf "" > "$shotfile" || break + # atomic: + if mv "$shotfile" "$target"; then + # Assign external temp-file name + force_set_var "$1" "$target" && return + fi fi done die "easyrsa_mktemp failed"