summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libcruft/mkstemp.c
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2003-09-12 15:16:49 +0000
committerMystery Man <unknown@mandriva.org>2003-09-12 15:16:49 +0000
commite0a90440b5f10011c62a4ef2ad7ae53ee75eac56 (patch)
tree8fb507c45d54fb01a7532400679b607cb61e8f33 /mdk-stage1/dietlibc/libcruft/mkstemp.c
parent83fc804615d6576d1da05e6b5ac955345914a035 (diff)
downloaddrakx-9_2_11mdk.tar
drakx-9_2_11mdk.tar.gz
drakx-9_2_11mdk.tar.bz2
drakx-9_2_11mdk.tar.xz
drakx-9_2_11mdk.zip
This commit was manufactured by cvs2svn to create tag 'V9_2_11mdk'.V9_2_11mdk
Diffstat (limited to 'mdk-stage1/dietlibc/libcruft/mkstemp.c')
-rw-r--r--mdk-stage1/dietlibc/libcruft/mkstemp.c31
1 files changed, 0 insertions, 31 deletions
diff --git a/mdk-stage1/dietlibc/libcruft/mkstemp.c b/mdk-stage1/dietlibc/libcruft/mkstemp.c
deleted file mode 100644
index 7dc19d4ed..000000000
--- a/mdk-stage1/dietlibc/libcruft/mkstemp.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include "dietfeatures.h"
-
-#ifndef O_NOFOLLOW
-#define O_NOFOLLOW 0
-#endif
-
-int mkstemp(char* template) {
- char *tmp=template+strlen(template)-6;
- int randfd;
- int i,res;
- unsigned int random;
- if (tmp<template) goto error;
- for (i=0; i<6; ++i) if (tmp[i]!='X') { error: errno=EINVAL; return -1; }
- randfd=open("/dev/urandom",O_RDONLY);
- for (;;) {
- read(randfd,&random,sizeof(random));
- for (i=0; i<6; ++i) {
- int hexdigit=(random>>(i*5))&0x1f;
- tmp[i]=hexdigit>9?hexdigit+'a'-10:hexdigit+'0';
- }
- res=open(template,O_CREAT|O_RDWR|O_EXCL|O_NOFOLLOW,0600);
- if (res>=0 || errno!=EEXIST) break;
- }
- close(randfd);
- return res;
-}