Skip to content

Commit 57e970a

Browse files
committed
Low: libpacemaker: Sanitize characters in environment variable names
Fixes T933
1 parent 4d9df98 commit 57e970a

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

cts/cli/regression.crmadmin.exp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,17 @@ overcloud-rabbit-2
6565
=#=#=#= End test: Minimally list all nodes (XML) - OK (0) =#=#=#=
6666
* Passed: crmadmin - Minimally list all nodes (XML)
6767
=#=#=#= Begin test: List all nodes as bash exports =#=#=#=
68-
export overcloud-controller-0=1
69-
export overcloud-controller-1=2
70-
export overcloud-controller-2=3
71-
export overcloud-galera-0=4
72-
export overcloud-galera-1=5
73-
export overcloud-galera-2=6
68+
export overcloud_controller_0=1
69+
export overcloud_controller_1=2
70+
export overcloud_controller_2=3
71+
export overcloud_galera_0=4
72+
export overcloud_galera_1=5
73+
export overcloud_galera_2=6
7474
export lxc1=lxc1
7575
export lxc2=lxc2
76-
export overcloud-rabbit-0=overcloud-rabbit-0
77-
export overcloud-rabbit-1=overcloud-rabbit-1
78-
export overcloud-rabbit-2=overcloud-rabbit-2
76+
export overcloud_rabbit_0=overcloud-rabbit-0
77+
export overcloud_rabbit_1=overcloud-rabbit-1
78+
export overcloud_rabbit_2=overcloud-rabbit-2
7979
=#=#=#= End test: List all nodes as bash exports - OK (0) =#=#=#=
8080
* Passed: crmadmin - List all nodes as bash exports
8181
=#=#=#= Begin test: List cluster nodes =#=#=#=

lib/pacemaker/pcmk_output.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -932,8 +932,13 @@ crmadmin_node(pcmk__output_t *out, va_list args)
932932
bool bash_export = va_arg(args, int);
933933

934934
if (bash_export) {
935-
return out->info(out, "export %s=%s",
936-
pcmk__s(name, "<null>"), pcmk__s(value, ""));
935+
int rc = pcmk_rc_ok;
936+
gchar *replaced = g_strcanon(g_strdup(pcmk__s(name, "<null>")),
937+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", '_');
938+
939+
rc = out->info(out, "export %s=%s", replaced, pcmk__s(value, ""));
940+
g_free(replaced);
941+
return rc;
937942
} else {
938943
return out->info(out, "%s node: %s (%s)", type ? type : "cluster",
939944
pcmk__s(name, "<null>"), pcmk__s(value, "<null>"));

0 commit comments

Comments
 (0)