Implement RAND_file_name.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20067 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -182,5 +182,34 @@ RAND_write_file(const char *filename)
|
|||||||
const char *
|
const char *
|
||||||
RAND_file_name(char *filename, size_t size)
|
RAND_file_name(char *filename, size_t size)
|
||||||
{
|
{
|
||||||
return NULL;
|
const char *e = NULL;
|
||||||
|
int pathp = 0, ret;
|
||||||
|
|
||||||
|
if (!issuid()) {
|
||||||
|
e = getenv("RANDFILE");
|
||||||
|
if (e == NULL) {
|
||||||
|
e = getenv("HOME");
|
||||||
|
if (e)
|
||||||
|
pathp = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (e == NULL) {
|
||||||
|
struct passwd *pw = getpwuid(getuid());
|
||||||
|
if (pw) {
|
||||||
|
e = pw->pw_dir;
|
||||||
|
pathp = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (e == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (pathp)
|
||||||
|
ret = snprintf(filename, size, "%s/.randfile", e);
|
||||||
|
else
|
||||||
|
ret = snprintf(filename, size, "%s", e);
|
||||||
|
|
||||||
|
if (ret <= 0 || ret >= size)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return filename;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user