From 7e30c72d03de540655b9569c38e5f5b8eb0de74e Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 4 Mar 2010 20:01:11 -0800 Subject: [PATCH] Reject pushing to invalid reference names If a reference name is not valid according to Git's rules for the allowable syntax, or it contains "//" because a typo on the client side introduced an unnecessary slash, reject the command with an error. Bug: issue 466 Change-Id: I89d8137a89225bc31813f5870d75568e5080b059 Signed-off-by: Shawn O. Pearce --- .../java/com/google/gerrit/server/git/ReceiveCommits.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java index c3fb454514..cbc0c0cecd 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java @@ -404,6 +404,12 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook { continue; } + if (!Repository.isValidRefName(cmd.getRefName()) + || cmd.getRefName().contains("//")) { + reject(cmd, "not valid ref"); + continue; + } + if (cmd.getRefName().startsWith(NEW_CHANGE)) { parseNewChangeCommand(cmd); continue;