The original code wants to Remove # comments unless they are within a double quoted string, but it doesn’t consider the "" after #, for example a=b #"a=c" Signed-off-by: xinpeng wang <wangxinpeng@xxxxxxxxxxxxx> --- src/utils/config.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/utils/config.c b/src/utils/config.c index 22aa2216e..ec4fa9a59 100644 --- a/src/utils/config.c +++ b/src/utils/config.c @@ -66,12 +66,21 @@ char * wpa_config_get_line(char *s, int size, FILE *stream, int *line, * Remove # comments unless they are within a double quoted * string. */ - sstart = os_strchr(pos, '"'); - if (sstart) - sstart = os_strrchr(sstart + 1, '"'); - if (!sstart) - sstart = pos; + sstart = pos; end = os_strchr(sstart, '#'); + while (end) + { + sstart = os_strchr(sstart, '"'); + if (!sstart || sstart > end) + break; + sstart = os_strchr(sstart + 1, '"'); + if (!sstart) + break; + ++sstart; + if (sstart > end) + end = os_strchr(sstart, '#'); + } + if (end) *end-- = '\0'; else -- 2.20.1 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap