From 89ff33ddd0125782ee6dbe075a3e21c0eacda15e Mon Sep 17 00:00:00 2001 From: Alexandros Kosiaris Date: Fri, 29 Mar 2024 16:45:32 +0200 Subject: [PATCH] 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 --- client/request.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/request.go b/client/request.go index 45787f4d..47e1ff59 100644 --- a/client/request.go +++ b/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] }