1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-22 12:30:54 +00:00

Read over 4096 length values

This commit is contained in:
SongLiangChen 2018-08-17 11:40:00 +08:00
parent 053a075344
commit 8f455ef199

View File

@ -78,15 +78,37 @@ func (ini *IniConfig) parseData(dir string, data []byte) (*IniConfigContainer, e
} }
} }
section := defaultSection section := defaultSection
tmpBuf := bytes.NewBuffer(nil)
for { for {
line, _, err := buf.ReadLine() tmpBuf.Reset()
shouldBreak := false
for {
tmp, isPrefix, err := buf.ReadLine()
if err == io.EOF { if err == io.EOF {
shouldBreak = true
break break
} }
//It might be a good idea to throw a error on all unknonw errors? //It might be a good idea to throw a error on all unknonw errors?
if _, ok := err.(*os.PathError); ok { if _, ok := err.(*os.PathError); ok {
return nil, err return nil, err
} }
tmpBuf.Write(tmp)
if isPrefix {
continue
}
if !isPrefix {
break
}
}
if shouldBreak {
break
}
line := tmpBuf.Bytes()
line = bytes.TrimSpace(line) line = bytes.TrimSpace(line)
if bytes.Equal(line, bEmpty) { if bytes.Equal(line, bEmpty) {
continue continue