aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2021-05-01 06:54:10 -0500
committerDavid Bremner <david@tethera.net>2021-05-01 21:13:23 -0300
commitff5f141bf205ad25e8ed4b8c9436b530f8ebf2be (patch)
tree3d3a4c05b1f2d78a8c0d7b82fb819ee8ec76cd50
parent6a20478abb517a8c6c046a1ff640fa02d118aa88 (diff)
test: fix passwd_sanitize()
If any of the variables is empty the output is completely messed up, because replace("", "FOO") puts "FOO" before every single character. I don't have my full name configured, and this is what I get: USER_FULL_NAME=USER_FULL_NAME=USER_FULL_NAME USER_FULL_NAMEsUSER_FULL_NAMEtUSER_FULL_NAMEdUSER_FULL_NAMEoUSER_FULL_NAMEuUSER_FULL_NAMEtUSER_FULL_NAME USER_FULL_NAME=USER_FULL_NAME=USER_FULL_NAME Let's check for empty strings before doing any replace. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
-rw-r--r--test/test-lib.sh7
1 files changed, 6 insertions, 1 deletions
diff --git a/test/test-lib.sh b/test/test-lib.sh
index 4c9f2a21..e13797a7 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -711,7 +711,12 @@ name = pw.pw_gecos.partition(",")[0]
fqdn = socket.getfqdn()
for l in sys.stdin:
- l = l.replace(user, "USERNAME").replace(fqdn, "FQDN").replace(".(none)","").replace(name, "USER_FULL_NAME")
+ if user:
+ l = l.replace(user, "USERNAME")
+ if fqdn:
+ l = l.replace(fqdn, "FQDN").replace(".(none)","")
+ if name:
+ l = l.replace(name, "USER_FULL_NAME")
sys.stdout.write(l)
'
}