about summary refs log tree commit diff
path: root/src/temp/mktemp.c
Commit message (Collapse)AuthorAgeFilesLines
* overhaul internally-public declarations using wrapper headersRich Felker2018-09-121-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commits leading up to this one have moved the vast majority of libc-internal interface declarations to appropriate internal headers, allowing them to be type-checked and setting the stage to limit their visibility. the ones that have not yet been moved are mostly namespace-protected aliases for standard/public interfaces, which exist to facilitate implementing plain C functions in terms of POSIX functionality, or C or POSIX functionality in terms of extensions that are not standardized. some don't quite fit this description, but are "internally public" interfacs between subsystems of libc. rather than create a number of newly-named headers to declare these functions, and having to add explicit include directives for them to every source file where they're needed, I have introduced a method of wrapping the corresponding public headers. parallel to the public headers in $(srcdir)/include, we now have wrappers in $(srcdir)/src/include that come earlier in the include path order. they include the public header they're wrapping, then add declarations for namespace-protected versions of the same interfaces and any "internally public" interfaces for the subsystem they correspond to. along these lines, the wrapper for features.h is now responsible for the definition of the hidden, weak, and weak_alias macros. this means source files will no longer need to include any special headers to access these features. over time, it is my expectation that the scope of what is "internally public" will expand, reducing the number of source files which need to include *_impl.h and related headers down to those which are actually implementing the corresponding subsystems, not just using them.
* include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy2013-12-121-2/+2
|
* fix (deprecated) mktemp logic and update it to match other temp functionsRich Felker2013-08-021-4/+11
| | | | | | | | the access function cannot be used to check for existence, because it operates using real uid/gid rather than effective to determine accessibility; this matters for the non-final path components. instead, use stat. failure of stat is success if only the final component is missing (ENOENT) and otherwise is failure.
* remove (no longer useful) namespace-protected __mktemp symbolRich Felker2013-08-021-4/+1
|
* use memcmp instead of str[n]cmp for temp function XXXXXX checkingRich Felker2013-02-201-1/+1
|
* remove leftover unused variable in mktemp after refactoringRich Felker2013-02-201-1/+0
|
* add mkostemp, mkstemps, and mkostemps functions and reorganize temp internalsRich Felker2013-02-201-10/+4
| | | | | | | | | based on patch contributed by Anthony G. Basile (blueness) some issues remain with the filename generation algorithm and other small bugs, but this patch has been sitting around long enough that I feel it's best to get it committed and then work out any remaining issues.
* remove ugly prng from mk*temp and just re-poll time on retryRich Felker2011-07-281-6/+5
|
* eliminate mk*temp dependency on snprintfRich Felker2011-07-281-3/+4
| | | | | this helps some tiny programs be even more tiny, and barly increases code size even if both are used.
* another return value fix for mktemp...Rich Felker2011-06-121-1/+2
|
* make mktemp match the historic behavior, and update functions that use itRich Felker2011-02-191-1/+2
| | | | | | the historic mktemp is supposed to blank the template string on failure, rather than returning 0. just zero the first character so that mkstemp and mkdtemp can still retry with O(1) space requirement.
* major improvements to temp file name generatorRich Felker2011-02-181-13/+15
| | | | | | | | use current time in nanoseconds and some potentially-random (if aslr is enabled) pointer values for the initial tempfile name generation, and step via a cheap linear prng on collisions. limit the number of retry attempts to prevent denial of service attacks even if an attacker can guess the filenames.
* ensure standard functions mk[sd]temp don't depend on removed function mktempRich Felker2011-02-141-1/+3
|
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+29