summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2015-08-16 15:31:17 +0100
committerPádraig Brady <P@draigBrady.com>2015-09-03 00:34:12 +0100
commita8cc9ce3f290a83dfb656dabfab2a98e765a68a0 (patch)
tree7c1a6fd442383b8aa6e494d18b0354b5719c712f /tests
parent89c517d9e26ad232d857ba37d897adbef19b30a9 (diff)
downloadcoreutils-a8cc9ce3f290a83dfb656dabfab2a98e765a68a0.tar.xz
base64: use stricter validation on wrap column
* src/base64.c (main): Use the higher level xnumtoumax() rather than xstrtoumax(), which is simpler and improves validation of input. Also pass the _empty_ rather than NULL string as the suffixes parameter so that invalid trailing characters are not allowed. For example -w08 is now flagged as an error, rather than being interpreted as 0. A subsequent commit will further improve verification of numbers with leading zeros by dropping backwards compatibility wrt auto parsing oct and hex numbers. * tests/misc/base64.pl: Add tests for invalid wrap values.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/misc/base64.pl14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/misc/base64.pl b/tests/misc/base64.pl
index 872535afb..44c3d21ab 100755
--- a/tests/misc/base64.pl
+++ b/tests/misc/base64.pl
@@ -71,6 +71,7 @@ sub gen_tests($)
['inout4', {IN=>'a'x4}, {OUT=>&$enc(4)."\n"}],
['inout5', {IN=>'a'x5}, {OUT=>&$enc(5)."\n"}],
['wrap', '--wrap 0', {IN=>'a'}, {OUT=>&$enc(1)}],
+ ['wrap-hex', '--wrap 0x0', {IN=>'a'}, {OUT=>&$enc(1)}],
['wrap5-39', '--wrap=5', {IN=>'a' x 39}, {OUT=>wrap &$enc(39),5}],
['wrap5-40', '--wrap=5', {IN=>'a' x 40}, {OUT=>wrap &$enc(40),5}],
['wrap5-41', '--wrap=5', {IN=>'a' x 41}, {OUT=>wrap &$enc(41),5}],
@@ -80,6 +81,19 @@ sub gen_tests($)
['wrap5-45', '--wrap=5', {IN=>'a' x 45}, {OUT=>wrap &$enc(45),5}],
['wrap5-46', '--wrap=5', {IN=>'a' x 46}, {OUT=>wrap &$enc(46),5}],
+ ['wrap-bad-1', '-w08', {IN=>''}, {OUT=>""},
+ {ERR_SUBST => 's/base..:/base..:/'},
+ {ERR => "base..: invalid wrap size: '08'\n"}, {EXIT => 1}],
+ ['wrap-bad-2', '-w1k', {IN=>''}, {OUT=>""},
+ {ERR_SUBST => 's/base..:/base..:/'},
+ {ERR => "base..: invalid wrap size: '1k'\n"}, {EXIT => 1}],
+ ['wrap-bad-3', '-w-1', {IN=>''}, {OUT=>""},
+ {ERR_SUBST => 's/base..:/base..:/'},
+ {ERR => "base..: invalid wrap size: '-1'\n"}, {EXIT => 1}],
+ ['wrap-bad-4', '-w-0', {IN=>''}, {OUT=>""},
+ {ERR_SUBST => 's/base..:/base..:/'},
+ {ERR => "base..: invalid wrap size: '-0'\n"}, {EXIT => 1}],
+
['buf-1', '--decode', {IN=>&$enc(1)}, {OUT=>'a' x 1}],
['buf-2', '--decode', {IN=>&$enc(2)}, {OUT=>'a' x 2}],
['buf-3', '--decode', {IN=>&$enc(3)}, {OUT=>'a' x 3}],