summaryrefslogtreecommitdiff
path: root/src/libstrongswan/settings/settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstrongswan/settings/settings.c')
-rw-r--r--src/libstrongswan/settings/settings.c7
1 files changed, 6 insertions, 1 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;