mirror of
https://github.com/sajari/docconv.git
synced 2026-10-16 21:21:59 +08:00
fix unbounded memory consumption vulnerability (#111)
Co-authored-by: Helena Mariano <31138349+helenamariano@users.noreply.github.com>
This commit is contained in:
@@ -40,7 +40,7 @@ func ConvertDocx(r io.Reader) (string, map[string]string, error) {
|
||||
size = si.Size()
|
||||
ra = f
|
||||
} else {
|
||||
b, err := ioutil.ReadAll(r)
|
||||
b, err := ioutil.ReadAll(io.LimitReader(r, maxBytes))
|
||||
if err != nil {
|
||||
return "", nil, nil
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ func ConvertODT(r io.Reader) (string, map[string]string, error) {
|
||||
meta := make(map[string]string)
|
||||
var textBody string
|
||||
|
||||
b, err := ioutil.ReadAll(r)
|
||||
b, err := ioutil.ReadAll(io.LimitReader(r, maxBytes))
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ func ConvertPages(r io.Reader) (string, map[string]string, error) {
|
||||
meta := make(map[string]string)
|
||||
var textBody string
|
||||
|
||||
b, err := ioutil.ReadAll(r)
|
||||
b, err := ioutil.ReadAll(io.LimitReader(r, maxBytes))
|
||||
if err != nil {
|
||||
return "", nil, fmt.Errorf("error reading data: %v", err)
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ func ConvertXML(r io.Reader) (string, map[string]string, error) {
|
||||
func XMLToText(r io.Reader, breaks []string, skip []string, strict bool) (string, error) {
|
||||
var result string
|
||||
|
||||
dec := xml.NewDecoder(r)
|
||||
dec := xml.NewDecoder(io.LimitReader(r, maxBytes))
|
||||
dec.Strict = strict
|
||||
for {
|
||||
t, err := dec.Token()
|
||||
@@ -76,7 +76,7 @@ func XMLToText(r io.Reader, breaks []string, skip []string, strict bool) (string
|
||||
// XMLToMap converts XML to a nested string map.
|
||||
func XMLToMap(r io.Reader) (map[string]string, error) {
|
||||
m := make(map[string]string)
|
||||
dec := xml.NewDecoder(r)
|
||||
dec := xml.NewDecoder(io.LimitReader(r, maxBytes))
|
||||
var tagName string
|
||||
for {
|
||||
t, err := dec.Token()
|
||||
|
||||
Reference in New Issue
Block a user