diff options
| -rw-r--r-- | src/ot_config.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ot_config.c b/src/ot_config.c index 626ddea..a4c2a47 100644 --- a/src/ot_config.c +++ b/src/ot_config.c | |||
| @@ -79,10 +79,12 @@ static listen_option_kind parse_listen_option(char **p) { | |||
| 79 | 79 | ||
| 80 | for (i = 0; i < listen_option_count; ++i) { | 80 | for (i = 0; i < listen_option_count; ++i) { |
| 81 | const listen_option_key *key = &listen_option_keys[i]; | 81 | const listen_option_key *key = &listen_option_keys[i]; |
| 82 | char delimiter = (*p)[key->len]; | 82 | char delimiter; |
| 83 | 83 | ||
| 84 | if (strncmp(*p, key->name, key->len)) | 84 | if (strncmp(*p, key->name, key->len)) |
| 85 | continue; | 85 | continue; |
| 86 | /* The match guarantees *p is at least key->len bytes, so this is in bounds */ | ||
| 87 | delimiter = (*p)[key->len]; | ||
| 86 | if (key->takes_value ? delimiter != '=' : (delimiter && !isspace((unsigned char)delimiter))) | 88 | if (key->takes_value ? delimiter != '=' : (delimiter && !isspace((unsigned char)delimiter))) |
| 87 | continue; | 89 | continue; |
| 88 | 90 | ||
