summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2022-06-23 11:53:28 -0400
committerRich Felker <dalias@aerifal.cx>2022-06-23 11:53:28 -0400
commita23a3da29bcca8d179d1e4de7d059639716a5c1e (patch)
tree4e8b219fbf79501b21a959a1f71dd91789bfb9c6
parent4100279825c17807bdabf1c128ba4e49a1dea406 (diff)
downloadmusl-a23a3da29bcca8d179d1e4de7d059639716a5c1e.tar.gz
avoid limited space of random temp file names if clock resolution is low
this is not an issue that was actually hit, but I noticed it during previous changes to __randname: if the resolution of tv_nsec is too low, the space of temp file names obtainable by a thread could plausibly be exhausted. mixing in tv_sec avoids this.
-rw-r--r--src/temp/__randname.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/temp/__randname.c b/src/temp/__randname.c
index 1425badc..e9b970f1 100644
--- a/src/temp/__randname.c
+++ b/src/temp/__randname.c
@@ -11,7 +11,7 @@ char *__randname(char *template)
unsigned long r;
__clock_gettime(CLOCK_REALTIME, &ts);
- r = ts.tv_nsec + __pthread_self()->tid * 65537UL;
+ r = ts.tv_sec + ts.tv_nsec + __pthread_self()->tid * 65537UL;
for (i=0; i<6; i++, r>>=5)
template[i] = 'A'+(r&15)+(r&16)*2;