From 945608173ffc08cd1351433100dcc869aa6dafb1 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Wed, 27 Mar 2013 18:23:27 -0700 Subject: Accept any characters in the argument to the comment command It's nice to have spaces and other special characters in comments, so allow any character rather than applying the normal argument filtering. Change-Id: Iec8584f1f6893906db7245fbe571d62ebc60f72a Reviewed-on: https://gerrit.stanford.edu/989 Reviewed-by: Russ Allbery Tested-by: Russ Allbery --- server/wallet-backend | 2 +- tests/server/backend-t | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/server/wallet-backend b/server/wallet-backend index fc3434e..3c87709 100755 --- a/server/wallet-backend +++ b/server/wallet-backend @@ -195,7 +195,7 @@ sub command { print $status ? "yes\n" : "no\n"; } } elsif ($command eq 'comment') { - check_args (2, 3, [], @args); + check_args (2, 3, [3], @args); if (@args > 2) { $server->comment (@args) or failure ($server->error, @_); } else { diff --git a/tests/server/backend-t b/tests/server/backend-t index 50131b7..7e9287d 100755 --- a/tests/server/backend-t +++ b/tests/server/backend-t @@ -3,7 +3,7 @@ # Tests for the wallet-backend dispatch code. # # Written by Russ Allbery -# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 +# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 # The Board of Trustees of the Leland Stanford Junior University # # See LICENSE for licensing terms. @@ -283,11 +283,16 @@ for my $command (sort keys %commands) { my @args = @base; $args[$arg] = 'foo;bar'; ($out, $err) = run_backend ($command, @args); - if ($command eq 'store' and $arg == 2) { - is ($err, '', 'Store allows any characters'); - is ($OUTPUT, "command $command @args[0,1] from admin (1.2.3.4)" - . " succeeded\n", ' and success logged'); - is ($out, "$new\nstore foobar foobar foo;bar\n", + if (($command eq 'store' or $command eq 'comment') and $arg == 2) { + is ($err, '', 'Store and comment allow any characters'); + if ($command eq 'store') { + is ($OUTPUT, "command $command @args[0,1] from admin" + . " (1.2.3.4) succeeded\n", ' and success logged'); + } else { + is ($OUTPUT, "command $command @args from admin" + . " (1.2.3.4) succeeded\n", ' and success logged'); + } + is ($out, "$new\n$command foobar foobar foo;bar\n", ' and calls the right method'); } else { is ($err, "invalid characters in argument: foo;bar\n", -- cgit v1.2.3