summaryrefslogtreecommitdiff
path: root/src/libstrongswan/settings
diff options
context:
space:
mode:
authorYves-Alexis Perez <corsac@corsac.net>2017-04-01 16:26:44 +0200
committerYves-Alexis Perez <corsac@corsac.net>2017-04-01 16:26:44 +0200
commit05ddd767992d68bb38c7f16ece142e8c2e9ae016 (patch)
tree302c618be306d4ed3c7f9fc58a1f6aaad4dd252f /src/libstrongswan/settings
parent25663e04c3ab01ef8dc9f906608282319cfea2db (diff)
downloadvyos-strongswan-05ddd767992d68bb38c7f16ece142e8c2e9ae016.tar.gz
vyos-strongswan-05ddd767992d68bb38c7f16ece142e8c2e9ae016.zip
New upstream version 5.5.2
Diffstat (limited to 'src/libstrongswan/settings')
-rw-r--r--src/libstrongswan/settings/settings.c7
-rw-r--r--src/libstrongswan/settings/settings_types.c2
2 files changed, 7 insertions, 2 deletions
diff --git a/src/libstrongswan/settings/settings.c b/src/libstrongswan/settings/settings.c
index 829e78482..b00e8190c 100644
--- a/src/libstrongswan/settings/settings.c
+++ b/src/libstrongswan/settings/settings.c
@@ -512,11 +512,16 @@ inline int settings_value_as_int(char *value, int def)
{
int intval;
char *end;
+ int base = 10;
if (value)
{
errno = 0;
- intval = strtol(value, &end, 10);
+ if (value[0] == '0' && value[1] == 'x')
+ { /* manually detect 0x prefix as we want to avoid octal encoding */
+ base = 16;
+ }
+ intval = strtol(value, &end, base);
if (errno == 0 && *end == 0 && end != value)
{
return intval;
diff --git a/src/libstrongswan/settings/settings_types.c b/src/libstrongswan/settings/settings_types.c
index 125676237..d753720f5 100644
--- a/src/libstrongswan/settings/settings_types.c
+++ b/src/libstrongswan/settings/settings_types.c
@@ -177,7 +177,7 @@ static bool section_purge(section_t *this, array_t *contents)
* having any such subsections) are not removed */
for (i = array_count(this->sections_order) - 1; i >= 0; i--)
{
- array_get(this->sections, i, &current);
+ array_get(this->sections_order, i, &current);
if (section_purge(current, contents))
{
array_remove(this->sections_order, i, NULL);