diff options
author | Shawn O. Pearce <sop@google.com> | 2009-06-04 21:31:16 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2009-06-04 21:31:16 -0700 |
commit | afca17b92a35e5e7ee4f62208fd9440226b26ee9 (patch) | |
tree | 58d147e9a5900b926d39efd03c32f565b435a604 | |
parent | e6153dc8dfcdb5e690316ca93e698ebd637223bb (diff) |
Don't allow commits to replace in wrong project
If the change is slated to a different project than the one the
commit was uploaded to, don't permit the replacement to take place.
This could be caused by a simple typo by the user, and we shouldn't
create a corrupt server side state because of it.
Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r-- | src/main/java/com/google/gerrit/server/ssh/Receive.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/com/google/gerrit/server/ssh/Receive.java b/src/main/java/com/google/gerrit/server/ssh/Receive.java index 817d2201c2..7f7057760f 100644 --- a/src/main/java/com/google/gerrit/server/ssh/Receive.java +++ b/src/main/java/com/google/gerrit/server/ssh/Receive.java @@ -769,6 +769,12 @@ class Receive extends AbstractGitCommand { reject(cmd, "change " + changeId.get() + " closed"); return null; } + if (change.getDest() == null + || !proj.getNameKey().equals(change.getDest().getParentKey())) { + reject(cmd, "change " + changeId.get() + " not in " + + proj.getName()); + return null; + } } else { change = changeCache.get(changeId); } |