Skip to content

Commit 65b2776

Browse files
committed
Limit use of deprecated mktemp function
1 parent d4b3a4c commit 65b2776

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

crypto/test/test_util.cc

+18-8
Original file line numberDiff line numberDiff line change
@@ -97,22 +97,32 @@ size_t createTempFILEpath(char buffer[PATH_MAX]) {
9797
}
9898
return GetTempFileNameA(pathname, "awslctest", 0, buffer);
9999
}
100+
FILE* createRawTempFILE() {
101+
char filename[PATH_MAX];
102+
if(createTempFILEpath(filename) == 0) {
103+
return nullptr;
104+
}
105+
return fopen(filename, "w+b");
106+
}
100107
#else
108+
#include <cstdlib>
101109
size_t createTempFILEpath(char buffer[PATH_MAX]) {
102-
if(tmpnam(buffer) == nullptr) {
110+
const auto pattern = "awslc.XXXXXXXXX";
111+
strncpy(buffer, pattern, PATH_MAX);
112+
OPENSSL_BEGIN_ALLOW_DEPRECATED
113+
// Functions for constructing a tempfile path (i.e., tmpname and mktemp)
114+
// are deprecated in C99.
115+
if(NULL == mktemp(buffer)) {
103116
return 0;
104117
}
118+
OPENSSL_BEGIN_ALLOW_DEPRECATED
105119
return strnlen(buffer, PATH_MAX);
106120
}
107-
#endif
108-
109121
FILE* createRawTempFILE() {
110-
char filename[PATH_MAX];
111-
if(createTempFILEpath(filename) == 0) {
112-
return nullptr;
113-
}
114-
return fopen(filename, "w+b");
122+
return tmpfile();
115123
}
124+
#endif
125+
116126

117127
TempFILE createTempFILE() {
118128
return TempFILE(createRawTempFILE());

0 commit comments

Comments
 (0)