summaryrefslogtreecommitdiff
path: root/doc/plugins/contrib/cvs
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-09-04 17:15:11 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-09-04 17:15:11 -0400
commitfc2bd0afe17a235a0ddfad0a5656c3683d8d180a (patch)
treefe870015a89c3720d54921aa942e24b89c6eaa25 /doc/plugins/contrib/cvs
parentde7c3aa16ba46adbc3d26e4a5a06e1dcc321fa6c (diff)
parent127ed4d6c7a7d2cc518102757b7b4be49d20fce8 (diff)
Merge branch 'master' into cvs
Diffstat (limited to 'doc/plugins/contrib/cvs')
-rw-r--r--doc/plugins/contrib/cvs/discussion.mdwn32
1 files changed, 32 insertions, 0 deletions
diff --git a/doc/plugins/contrib/cvs/discussion.mdwn b/doc/plugins/contrib/cvs/discussion.mdwn
index e142452d0..1f0ce0102 100644
--- a/doc/plugins/contrib/cvs/discussion.mdwn
+++ b/doc/plugins/contrib/cvs/discussion.mdwn
@@ -93,3 +93,35 @@ the "cvs add <directory>" call and avoid doing anything in that case?
>>> if a configured post-commit hook is missing, and it seems fine,
>>> probably also thanks to IPC::Cmd.
>>> --[[schmonz]]
+
+----
+
+
+Further review.. --[[Joey]]
+
+I don't understand what `cvs_shquote_commit` is
+trying to do with the test message, but it seems
+highly likely to be insecure; I never trust anything
+that relies on safely quoting user input passed to the shell.
+
+(As an aside, `shell_quote` can die on certian inputs.)
+
+Seems to me that, if `IPC::Cmd` exposes input to the shell
+(which I have not verified but its docs don't specify; a bad sign)
+you chose the wrong tool and ended up doing down the wrong
+route, dragging in shell quoting problems and fixes. Since you
+chose to use `IPC::Cmd` just because you wanted to shut
+up CVS stderr, my suggestion would be to use plain `system`
+to run the command, with stderr temporarily sent to /dev/null:
+
+ open(my $savederr, ">&STDERR");
+ open(STDERR, ">", "/dev/null");
+ my $ret=system("cvs", "-Q", @_);
+ open(STDERR, ">$savederr");
+
+`cvs_runcvs` should not take an array reference. It's
+usual for this type of function to take a list of parameters
+to pass to the command.
+
+> Thanks for reading carefully. I've tested your suggestions and
+> applied them on my branch. --[[schmonz]]