summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbj <devnull@localhost>2003-12-26 17:36:38 +0000
committerjbj <devnull@localhost>2003-12-26 17:36:38 +0000
commit5c747d9870d80aa0213f325bc03e22f081749b0d (patch)
tree1a6cc29f0eccb663b533c9d96479da447e2d2885
parent32c0cfd728a123e5c594e540d1a2aeef67895709 (diff)
downloadlibrpm-tizen-5c747d9870d80aa0213f325bc03e22f081749b0d.tar.gz
librpm-tizen-5c747d9870d80aa0213f325bc03e22f081749b0d.tar.bz2
librpm-tizen-5c747d9870d80aa0213f325bc03e22f081749b0d.zip
- don't use mktemp if mkstemp is available (#103850).
CVS patchset: 7012 CVS date: 2003/12/26 17:36:38
-rw-r--r--CHANGES1
-rw-r--r--build.c16
-rw-r--r--configure.ac2
3 files changed, 10 insertions, 9 deletions
diff --git a/CHANGES b/CHANGES
index a8bed2e85..aa5a006dc 100644
--- a/CHANGES
+++ b/CHANGES
@@ -9,6 +9,7 @@
- fix: added index size wrong iff _transaction_color != 0/3 (#103865).
- fix: escape '+' in regex patterns through RPMMIRE_DEFAULT (#103851).
- RPMMIRE_DEFAULT is overkill, use RPMMIRE_STRCMP instead (#103851).
+ - don't use mktemp if mkstemp is available (#103850).
4.2.1 -> 4.2.2:
- unify signal handling in librpmio, use condvar to deliver signal.
diff --git a/build.c b/build.c
index fb32018d6..fc9df11c1 100644
--- a/build.c
+++ b/build.c
@@ -126,7 +126,7 @@ static int buildForTarget(rpmts ts, const char * arg, BTA_t ba)
if (ba->buildMode == 't') {
FILE *fp;
const char * specDir;
- const char * tmpSpecFile;
+ char * tmpSpecFile;
char * cmd, * s;
rpmCompressedMagic res = COMPRESSED_OTHER;
/*@observer@*/ static const char *zcmds[] =
@@ -134,14 +134,12 @@ static int buildForTarget(rpmts ts, const char * arg, BTA_t ba)
specDir = rpmGetPath("%{_specdir}", NULL);
- /* XXX Using mkstemp is difficult here. */
- /* XXX FWIW, default %{_specdir} is root.root 0755 */
- { char tfn[64];
- strcpy(tfn, "rpm-spec.XXXXXX");
- /*@-unrecog@*/
- tmpSpecFile = rpmGetPath("%{_specdir}/", mktemp(tfn), NULL);
- /*@=unrecog@*/
- }
+ tmpSpecFile = rpmGetPath("%{_specdir}/", "rpm-spec.XXXXXX", NULL);
+#if defined(HAVE_MKSTEMP)
+ (void) close(mkstemp(tmpSpecFile));
+#else
+ (void) mktemp(tmpSpecFile);
+#endif
(void) isCompressed(arg, &res);
diff --git a/configure.ac b/configure.ac
index 817326430..849c26475 100644
--- a/configure.ac
+++ b/configure.ac
@@ -759,6 +759,8 @@ AC_CHECK_FUNCS(regcomp)
AC_CHECK_FUNCS(ftok)
+AC_CHECK_FUNCS(mkstemp)
+
dnl
dnl XXX Regex replacement isn't known to be needed yet.
dnl