from mktemp(1):

        The template may be any filename with at least six ‘Xs’ appended
        to it, for example /tmp/tfile.XXXXXXXXXX.

Now when a template contains but does not end in six Xs, the error
message may imply errornous behaviour instead of bad usage:

        $ mktemp XXXXXX
        oAQnQ5
        $ mktemp XXXXXXs
        mktemp: insufficient number of Xs in template `XXXXXXs'

I'd like to see a more precise error message here.

Feedback?

diff --git a/usr.bin/mktemp/mktemp.c b/usr.bin/mktemp/mktemp.c
index 713b67fd105..c080d1d6474 100644
--- a/usr.bin/mktemp/mktemp.c
+++ b/usr.bin/mktemp/mktemp.c
@@ -77,10 +77,9 @@ main(int argc, char *argv[])
        }
 
        len = strlen(template);
-       if (len < 6 || strcmp(&template[len - 6], "XXXXXX")) {
-               fatalx("insufficient number of Xs in template `%s'",
-                   template);
-       }
+       if (len < 6 || strcmp(&template[len - 6], "XXXXXX"))
+               fatalx("template must end in six or more Xs");
+
        if (tflag) {
                if (strchr(template, '/')) {
                        fatalx("template must not contain directory "

Reply via email to