@@ -14,6 +14,7 @@ import (
14
14
"encoding/pem"
15
15
"errors"
16
16
"fmt"
17
+ "io"
17
18
"io/ioutil"
18
19
"math/big"
19
20
"net/http"
@@ -67,7 +68,7 @@ func GetOCSPForCert(bundle []byte) ([]byte, int, error) {
67
68
}
68
69
defer resp .Body .Close ()
69
70
70
- issuerBytes , err := ioutil .ReadAll (resp .Body )
71
+ issuerBytes , err := ioutil .ReadAll (limitReader ( resp .Body , 1024 * 1024 ) )
71
72
if err != nil {
72
73
return nil , OCSPUnknown , err
73
74
}
@@ -100,8 +101,8 @@ func GetOCSPForCert(bundle []byte) ([]byte, int, error) {
100
101
return nil , OCSPUnknown , err
101
102
}
102
103
defer req .Body .Close ()
103
-
104
- ocspResBytes , err := ioutil .ReadAll (req .Body )
104
+
105
+ ocspResBytes , err := ioutil .ReadAll (limitReader ( req .Body , 1024 * 1024 ) )
105
106
ocspRes , err := ocsp .ParseResponse (ocspResBytes , issuerCert )
106
107
if err != nil {
107
108
return nil , OCSPUnknown , err
@@ -312,3 +313,7 @@ func generateDerCert(privKey *rsa.PrivateKey, expiration time.Time, domain strin
312
313
313
314
return x509 .CreateCertificate (rand .Reader , & template , & template , & privKey .PublicKey , privKey )
314
315
}
316
+
317
+ func limitReader (rd io.ReadCloser , numBytes int64 ) io.ReadCloser {
318
+ return http .MaxBytesReader (nil , rd , numBytes )
319
+ }
0 commit comments