提交 7b55dd38 编写于 作者: A Andreas Schneider

Fix crash with crafted ini files.

If the key or value is bigger than 1024 we will end up in a buffer
overflow. The overflow is caught by _FORTIFY_SOURCE, so it's definitely
DoS-only.  Curiously, because of ample space in the stack frame, it does
not result in a crash without _FORTIFY_SOURCE in all cases.
Signed-off-by: NAndreas Schneider <asn@samba.org>
上级 7042d9af
......@@ -633,7 +633,7 @@ dictionary * iniparser_load(const char * ininame)
char line [ASCIILINESZ+1] ;
char section [ASCIILINESZ+1] ;
char key [ASCIILINESZ+1] ;
char tmp [ASCIILINESZ+1] ;
char tmp [(ASCIILINESZ * 2) + 1] ;
char val [ASCIILINESZ+1] ;
int last=0 ;
......@@ -699,7 +699,7 @@ dictionary * iniparser_load(const char * ininame)
break ;
case LINE_VALUE:
sprintf(tmp, "%s:%s", section, key);
snprintf(tmp, sizeof(tmp), "%s:%s", section, key);
errs = dictionary_set(dict, tmp, val) ;
break ;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册