diff --git a/ChangeLog.md b/ChangeLog.md index 515ed88..94e0e7c 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -4,6 +4,14 @@ Change Log All notable changes to the project are documented in this file. +[v2.4.1][UNRELEASED] +----------------------- + +### Changes +### Fixes +- Fix issue with `tempfile()` returning EOPNOTSUPP on Azure + + [v2.4.0][] - 2021-03-27 ----------------------- diff --git a/src/tempfile.c b/src/tempfile.c index 422d542..4099cdf 100644 --- a/src/tempfile.c +++ b/src/tempfile.c @@ -15,6 +15,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #include #include /* O_TMPFILE requires -D_GNU_SOURCE */ #include /* fdopen() */ @@ -42,8 +43,12 @@ FILE *tempfile(void) oldmask = umask(0077); fd = open(_PATH_TMP, O_TMPFILE | O_RDWR | O_EXCL | O_CLOEXEC, S_IRUSR | S_IWUSR); umask(oldmask); - if (-1 == fd) + if (-1 == fd) { + if (errno == EOPNOTSUPP) + return tmpfile(); + return NULL; + } return fdopen(fd, "w+"); #else