aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2024-09-24 09:30:05 +0800
committerGitHub <noreply@github.com>2024-09-24 01:30:05 +0000
commit3f2d8f873035b614b4cdb447d8e16f5af82cefe8 (patch)
tree35cd78c2ac242872e1af39bd28c8dd3474e1aca6 /cmd
parentfcedf634d5864a9e4ec3f866b99076872aafd07d (diff)
downloadgitea-3f2d8f873035b614b4cdb447d8e16f5af82cefe8.tar.gz
gitea-3f2d8f873035b614b4cdb447d8e16f5af82cefe8.zip
Fix panic when cloning with wrong ssh format. (#32076)
Diffstat (limited to 'cmd')
-rw-r--r--cmd/serv.go11
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 {