From 67153ecf5661692a65e0b3a302622f372862390c Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Mon, 3 Apr 2023 21:50:35 +0200 Subject: [PATCH] fix(gw): panic in handler_car.go Potential fix for https://github.com/ipfs/bifrost-gateway/issues/72 --- gateway/handler_car.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gateway/handler_car.go b/gateway/handler_car.go index 0d51cfe47..085bf8e75 100644 --- a/gateway/handler_car.go +++ b/gateway/handler_car.go @@ -79,12 +79,13 @@ func (i *handler) serveCAR(ctx context.Context, w http.ResponseWriter, r *http.R _, copyErr := io.Copy(w, carFile) carErr := <-errCh - if copyErr != nil || carErr != nil { + streamErr := multierr.Combine(carErr, copyErr) + if streamErr != nil { // We return error as a trailer, however it is not something browsers can access // (https://github.com/mdn/browser-compat-data/issues/14703) // Due to this, we suggest client always verify that // the received CAR stream response is matching requested DAG selector - w.Header().Set("X-Stream-Error", multierr.Combine(err, copyErr).Error()) + w.Header().Set("X-Stream-Error", streamErr.Error()) return false }