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()
|
size = si.Size()
|
||||||
ra = f
|
ra = f
|
||||||
} else {
|
} else {
|
||||||
b, err := ioutil.ReadAll(r)
|
b, err := ioutil.ReadAll(io.LimitReader(r, maxBytes))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, nil
|
return "", nil, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ func ConvertODT(r io.Reader) (string, map[string]string, error) {
|
|||||||
meta := make(map[string]string)
|
meta := make(map[string]string)
|
||||||
var textBody string
|
var textBody string
|
||||||
|
|
||||||
b, err := ioutil.ReadAll(r)
|
b, err := ioutil.ReadAll(io.LimitReader(r, maxBytes))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ func ConvertPages(r io.Reader) (string, map[string]string, error) {
|
|||||||
meta := make(map[string]string)
|
meta := make(map[string]string)
|
||||||
var textBody string
|
var textBody string
|
||||||
|
|
||||||
b, err := ioutil.ReadAll(r)
|
b, err := ioutil.ReadAll(io.LimitReader(r, maxBytes))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, fmt.Errorf("error reading data: %v", err)
|
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) {
|
func XMLToText(r io.Reader, breaks []string, skip []string, strict bool) (string, error) {
|
||||||
var result string
|
var result string
|
||||||
|
|
||||||
dec := xml.NewDecoder(r)
|
dec := xml.NewDecoder(io.LimitReader(r, maxBytes))
|
||||||
dec.Strict = strict
|
dec.Strict = strict
|
||||||
for {
|
for {
|
||||||
t, err := dec.Token()
|
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.
|
// XMLToMap converts XML to a nested string map.
|
||||||
func XMLToMap(r io.Reader) (map[string]string, error) {
|
func XMLToMap(r io.Reader) (map[string]string, error) {
|
||||||
m := make(map[string]string)
|
m := make(map[string]string)
|
||||||
dec := xml.NewDecoder(r)
|
dec := xml.NewDecoder(io.LimitReader(r, maxBytes))
|
||||||
var tagName string
|
var tagName string
|
||||||
for {
|
for {
|
||||||
t, err := dec.Token()
|
t, err := dec.Token()
|
||||||
|
|||||||
Reference in New Issue
Block a user