From e274e949e6f8fc442e8c464ff1a294edd61ba8e0 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 16 Feb 2025 02:31:16 +0800 Subject: *.go: Fix missing error handling --- http_handle_repo_info.go | 3 +++ http_server.go | 10 ++++++++-- misc.go | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/http_handle_repo_info.go b/http_handle_repo_info.go index 5bc0b76..4dd1c8d 100644 --- a/http_handle_repo_info.go +++ b/http_handle_repo_info.go @@ -23,6 +23,9 @@ func handle_repo_info(w http.ResponseWriter, r *http.Request, params map[string] fs_loader := server.NewFilesystemLoader(billy_fs) transport := server.NewServer(fs_loader) upload_pack_session, err := transport.NewUploadPackSession(endpoint, nil) + if err != nil { + return err + } advertised_references, err := upload_pack_session.AdvertisedReferencesContext(r.Context()) if err != nil { return err diff --git a/http_server.go b/http_server.go index 1a4d0a3..948117d 100644 --- a/http_server.go +++ b/http_server.go @@ -131,9 +131,15 @@ func (router *http_router_t) ServeHTTP(w http.ResponseWriter, r *http.Request) { repo_feature := segments[separator_index+3] switch repo_feature { case "info": - handle_repo_info(w, r, params) + err = handle_repo_info(w, r, params) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } case "git-upload-pack": - handle_upload_pack(w, r, params) + err = handle_upload_pack(w, r, params) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } case "tree": params["rest"] = strings.Join(segments[separator_index+4:], "/") if len(segments) < separator_index+5 && redirect_with_slash(w, r) { diff --git a/misc.go b/misc.go index 5077b83..558f906 100644 --- a/misc.go +++ b/misc.go @@ -13,6 +13,7 @@ type name_desc_t struct { var err_environ_no_separator = errors.New("No separator found in environ line") func environ_to_map(environ_strings []string) (result map[string]string, err error) { + result = make(map[string]string) for _, environ_string := range environ_strings { key, value, found := strings.Cut(environ_string, "=") if !found { -- cgit v1.2.3