On 2008-08-15 Clint Adams <[EMAIL PROTECTED]> wrote:
> Possible solutions:
> 1) change the algorithm
> 2) use libc mkstemp (will break templates shorter than 6 characters)
> 3) ship mktemp from sarge (will break templates shorter than 6
> characters)
> 4) ship coreutils mktemp (will break templates shorter than 3
> characters)
Hello,
is there actually a reason for using the PID and for limiting the
non-pid part to [[A-Za-z]?
Why not
--------bugs included-----
--- mktemp-1.5.orig/priv_mktemp.c
+++ mktemp-1.5/priv_mktemp.c
@@ -81,25 +81,20 @@
register char *start, *trv;
struct stat sbuf;
int pid, rval;
- char *alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ char *alphabet =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-=%#_";
if (doopen && domkdir) {
errno = EINVAL;
return(0);
}
- pid = getpid();
for (trv = path; *trv; ++trv)
;
--trv;
- while (trv >= path && *trv == 'X' && pid != 0) {
- *trv-- = (pid % 10) + '0';
- pid /= 10;
- }
while (trv >= path && *trv == 'X') {
char c;
- pid = (get_random() & 0xffff) % (26+26);
+ pid = (get_random() & 0xffff) % (26+26+10+6);
c = alphabet[pid];
*trv-- = c;
}
-------------------------
cu andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]