diff options
Diffstat (limited to 'src/libstrongswan/settings/settings.c')
-rw-r--r-- | src/libstrongswan/settings/settings.c | 7 |
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; |