diff options
| author | Felipe Contreras <felipe.contreras@gmail.com> | 2021-05-01 06:54:10 -0500 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2021-05-01 21:13:23 -0300 |
| commit | ff5f141bf205ad25e8ed4b8c9436b530f8ebf2be (patch) | |
| tree | 3d3a4c05b1f2d78a8c0d7b82fb819ee8ec76cd50 | |
| parent | 6a20478abb517a8c6c046a1ff640fa02d118aa88 (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.sh | 7 |
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) ' } |
