Explorar el Código

fix(client): Return nil and error if endpoint is empty string

Why:
Passing an empty string as an endpoint to Client when instantiating a
new client might seem like something that should never happen but I
managed to trigger it while parsing some input files to register feeds
in bulk.

What:
In the execute() function, check early if the endpoint is "" and then
return immediately nil and a new error, named ErrEmptyEndpoint with a
descriptive string
Alexandros Kosiaris hace 2 años
padre
commit
89ff33ddd0
Se han modificado 1 ficheros con 4 adiciones y 0 borrados
  1. 4 0
      client/request.go

+ 4 - 0
client/request.go

@@ -27,6 +27,7 @@ var (
 	ErrServerError   = errors.New("miniflux: internal server error")
 	ErrNotFound      = errors.New("miniflux: resource not found")
 	ErrBadRequest    = errors.New("miniflux: bad request")
+	ErrEmptyEndpoint = errors.New("miniflux: empty endpoint provided")
 )
 
 type errorResponse struct {
@@ -62,6 +63,9 @@ func (r *request) Delete(path string) error {
 }
 
 func (r *request) execute(method, path string, data interface{}) (io.ReadCloser, error) {
+	if r.endpoint == "" {
+		return nil, ErrEmptyEndpoint
+	}
 	if r.endpoint[len(r.endpoint)-1:] == "/" {
 		r.endpoint = r.endpoint[:len(r.endpoint)-1]
 	}