diff options
author | arnehaak <45362083+arnehaak@users.noreply.github.com> | 2018-11-29 00:01:32 +0100 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2018-11-29 01:50:35 +0100 |
commit | e2aca14130f3a1a4587764af2dee9c733a4a8b02 (patch) | |
tree | 00321fadae89a4be4e7ab973f0dd0b955c3f3bef | |
parent | 6dfe0bcfd77c094d750c400193e525a51fa30273 (diff) | |
download | vyos-1x-e2aca14130f3a1a4587764af2dee9c733a4a8b02.tar.gz vyos-1x-e2aca14130f3a1a4587764af2dee9c733a4a8b02.zip |
T1001: Bugfix: Handle backslashes in values with "show configuration commands"
This script is usually called with the output of "cli-shell-api showCfg", which does not escape backslashes. "ConfigTree()" expects escaped backslashes when parsing a config string (and also prints them itself). Therefore this script would fail.
Manually escape backslashes here to handle backslashes in any configuration strings properly. The alternative would be to modify the output of "cli-shell-api showCfg", but that may be break other things who rely on that specific output.
This fixes https://phabricator.vyos.net/T1001
-rwxr-xr-x | src/utils/vyos-config-to-commands | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/utils/vyos-config-to-commands b/src/utils/vyos-config-to-commands index 8b50f7c5d..7147bc5ff 100755 --- a/src/utils/vyos-config-to-commands +++ b/src/utils/vyos-config-to-commands @@ -19,6 +19,14 @@ else: except OSError as e: print("Could not read config file {0}: {1}".format(file_name, e), file=sys.stderr) +# This script is usually called with the output of "cli-shell-api showCfg", which does not +# escape backslashes. "ConfigTree()" expects escaped backslashes when parsing a config +# string (and also prints them itself). Therefore this script would fail. +# Manually escape backslashes here to handle backslashes in any configuration strings +# properly. The alternative would be to modify the output of "cli-shell-api showCfg", +# but that may be break other things who rely on that specific output. +config_string = config_string.replace("\\", "\\\\") + try: config = ConfigTree(config_string) commands = config.to_commands() |