googlephotos,onedrive: fix crash on error response - fixes #3491

This fixes a crash on the google photos backend when an error is
returned from the rest.Call function.

This turned out to be a mis-understanding of the rest docs so
- improved rest.Call docs
- fixed mis-understanding in google photos backend
- fixed similar mis-understading in onedrive backend
This commit is contained in:
Nick Craig-Wood
2019-08-28 11:21:38 +01:00
parent 7211c2dca7
commit 0edbc9578d
3 changed files with 17 additions and 14 deletions

View File

@@ -46,7 +46,7 @@ func ReadBody(resp *http.Response) (result []byte, err error) {
}
// defaultErrorHandler doesn't attempt to parse the http body, just
// returns it in the error message
// returns it in the error message closing resp.Body
func defaultErrorHandler(resp *http.Response) (err error) {
body, err := ReadBody(resp)
if err != nil {
@@ -178,9 +178,11 @@ func ClientWithNoRedirects(c *http.Client) *http.Client {
// Call makes the call and returns the http.Response
//
// if err != nil then resp.Body will need to be closed unless
// if err == nil then resp.Body will need to be closed unless
// opt.NoResponse is set
//
// if err != nil then resp.Body will have been closed
//
// it will return resp if at all possible, even if err is set
func (api *Client) Call(opts *Opts) (resp *http.Response, err error) {
api.mu.RLock()