diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2024-09-24 09:30:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 01:30:05 +0000 |
commit | 3f2d8f873035b614b4cdb447d8e16f5af82cefe8 (patch) | |
tree | 35cd78c2ac242872e1af39bd28c8dd3474e1aca6 /cmd | |
parent | fcedf634d5864a9e4ec3f866b99076872aafd07d (diff) | |
download | gitea-3f2d8f873035b614b4cdb447d8e16f5af82cefe8.tar.gz gitea-3f2d8f873035b614b4cdb447d8e16f5af82cefe8.zip |
Fix panic when cloning with wrong ssh format. (#32076)
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/serv.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/cmd/serv.go b/cmd/serv.go index 2bfd111061..f74a8fd3d0 100644 --- a/cmd/serv.go +++ b/cmd/serv.go @@ -143,6 +143,12 @@ func runServ(c *cli.Context) error { return nil } + defer func() { + if err := recover(); err != nil { + _ = fail(ctx, "Internal Server Error", "Panic: %v\n%s", err, log.Stack(2)) + } + }() + keys := strings.Split(c.Args().First(), "-") if len(keys) != 2 || keys[0] != "key" { return fail(ctx, "Key ID format error", "Invalid key argument: %s", c.Args().First()) @@ -189,10 +195,7 @@ func runServ(c *cli.Context) error { } verb := words[0] - repoPath := words[1] - if repoPath[0] == '/' { - repoPath = repoPath[1:] - } + repoPath := strings.TrimPrefix(words[1], "/") var lfsVerb string if verb == lfsAuthenticateVerb { |