Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt =================================================================== --- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/CMakeLists.txt +++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/CMakeLists.txt @@ -69,6 +69,10 @@ endif() include(CheckFunctionExists) check_function_exists(eaccess HAVE_EACCESS) +check_function_exists(mkstemps HAVE_MKSTEMPS) +if(HAVE_MKSTEMPS) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_MKSTEMPS") +endif(HAVE_MKSTEMPS) # install binary install(TARGETS netopeer2-cli DESTINATION ${BIN_INSTALL_DIR}) Index: netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c =================================================================== --- netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459.orig/cli/completion.c +++ netopeer2-0.4.0-d028c1f931819db4b3e3cb1fd2d349a4fd5c0459/cli/completion.c @@ -120,6 +120,7 @@ readinput(const char *instruction, const char* tmpname = NULL, *input = NULL, *old_content = NULL, *ptr, *ptr2; /* Create a unique temporary file */ +#ifdef HAVE_MKSTEMPS if (asprintf(&tmpname, "/tmp/tmpXXXXXX.xml") == -1) { ERROR(__func__, "asprintf() failed (%s).", strerror(errno)); goto fail; @@ -129,6 +130,23 @@ readinput(const char *instruction, const ERROR(__func__, "Failed to create a temporary file (%s).", strerror(errno)); goto fail; } +#else + if (asprintf(&tmpname, "/tmp/tmpXXXXXX") == -1) { + ERROR(__func__, "asprintf() failed (%s).", strerror(errno)); + goto fail; + } + /* cannot fail */ + mktemp(tmpname); + if (asprintf(&tmpname, ".xml") == -1) { + ERROR(__func__, "asprintf() failed (%s).", strerror(errno)); + goto fail; + } + tmpfd = open(tmpname, O_RDWR | O_CREAT | O_EXCL, 0600); + if (tmpfd == -1) { + ERROR(__func__, "Failed to create a temporary file (%s).", strerror(errno)); + goto fail; + } +#endif /* #ifdef HAVE_MKSTEMPS */ /* Read the old content, if any */ if (old_tmp != NULL) {