aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2024-06-30 18:33:18 +0800
committerZhao Zhili <zhilizhao@tencent.com>2024-07-16 22:50:21 +0800
commite713a2d85dad51705a892243170dfbe929b6515a (patch)
tree378f9038d1d8c085f17aa785770c9b1b9f69285a
parent3002310b707071ec7aa671ab7428feed5ee9740c (diff)
downloadffmpeg-e713a2d85dad51705a892243170dfbe929b6515a.tar.gz
avutil/file_open: Fix build error with wasi
Don't assume tempnam is available when !HAVE_MKSTEMP. Check tempnam explicitly in configure. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-rwxr-xr-xconfigure2
-rw-r--r--libavutil/file_open.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/configure b/configure
index f84fefeaab..e1a1744da9 100755
--- a/configure
+++ b/configure
@@ -2414,6 +2414,7 @@ SYSTEM_FUNCS="
sysconf
sysctl
sysctlbyname
+ tempnam
usleep
UTGetOSTypeFromString
VirtualAlloc
@@ -6554,6 +6555,7 @@ check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
check_func strerror_r
check_func sysconf
check_func sysctl
+check_func tempnam
check_func usleep
check_func_headers conio.h kbhit
diff --git a/libavutil/file_open.c b/libavutil/file_open.c
index 24ef33e3da..4692035d55 100644
--- a/libavutil/file_open.c
+++ b/libavutil/file_open.c
@@ -112,7 +112,10 @@ int avpriv_tempfile(const char *prefix, char **filename, int log_offset, void *l
{
FileLogContext file_log_ctx = { &file_log_ctx_class, log_offset, log_ctx };
int fd = -1;
-#if !HAVE_MKSTEMP
+#if HAVE_MKSTEMP
+ size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */
+ *filename = av_malloc(len);
+#elif HAVE_TEMPNAM
void *ptr= tempnam(NULL, prefix);
if(!ptr)
ptr= tempnam(".", prefix);
@@ -120,8 +123,7 @@ int avpriv_tempfile(const char *prefix, char **filename, int log_offset, void *l
#undef free
free(ptr);
#else
- size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */
- *filename = av_malloc(len);
+ return AVERROR(ENOSYS);
#endif
/* -----common section-----*/
if (!*filename) {