diff options
-rw-r--r-- | src/base64.c | 7 | ||||
-rwxr-xr-x | tests/misc/base64.pl | 14 |
2 files changed, 17 insertions, 4 deletions
diff --git a/src/base64.c b/src/base64.c index 679044e40..15888fa83 100644 --- a/src/base64.c +++ b/src/base64.c @@ -29,7 +29,7 @@ #include "fadvise.h" #include "xstrtol.h" #include "quote.h" -#include "quotearg.h" +#include "xdectoint.h" #include "xfreopen.h" #define AUTHORS proper_name ("Simon Josefsson") @@ -289,9 +289,8 @@ main (int argc, char **argv) break; case 'w': - if (xstrtoumax (optarg, NULL, 0, &wrap_column, NULL) != LONGINT_OK) - error (EXIT_FAILURE, 0, _("invalid wrap size: %s"), - quotearg (optarg)); + wrap_column = xnumtoumax (optarg, 0, 0, UINTMAX_MAX, "", + _("invalid wrap size"), 0); break; case 'i': 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}], |