Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Abide by TMPDIR setting in the environment
Matthew Seaman committed 13 years ago
commit 5f8b651b56bd66fafaa88594ad2988a9cd90a3be
parent db160da
2 files changed +16 -3
modified libpkg/update.c
@@ -72,7 +72,7 @@ pkg_update(const char *name, const char *packagesite, bool force)
	struct archive_entry *ae = NULL;
	char repofile[MAXPATHLEN];
	char repofile_unchecked[MAXPATHLEN];
-
	char tmp[21];
+
	char tmp[MAXPATHLEN];
	const char *dbdir = NULL;
	const char *repokey;
	unsigned char *sig = NULL;
@@ -84,10 +84,16 @@ pkg_update(const char *name, const char *packagesite, bool force)
	char *archreq = NULL;
	const char *myarch;
	int64_t res;
+
	const char *tmpdir;

	snprintf(url, MAXPATHLEN, "%s/repo.txz", packagesite);

-
	(void)strlcpy(tmp, "/tmp/repo.txz.XXXXXX", sizeof(tmp));
+
	tmpdir = getenv("TMPDIR");
+
	if (tmpdir == NULL)
+
		tmpdir = "/tmp";
+
	strlcpy(tmp, tmpdir, sizeof(tmp));
+
	strlcat(tmp, "/repo.txz.XXXXXX", sizeof(tmp));
+

	if (mktemp(tmp) == NULL) {
		pkg_emit_error("Could not create temporary file %s, "
		    "aborting update.\n", tmp);
modified pkg/audit.c
@@ -78,12 +78,19 @@ fetch_and_extract(const char *src, const char *dest)
	struct archive *a = NULL;
	struct archive_entry *ae = NULL;
	int fd = -1;
-
	const char *tmp = "/tmp/auditfile.tbz";
+
	char tmp[MAXPATHLEN];
+
	const char *tmpdir;
	int retcode = EPKG_FATAL;
	int ret;
	time_t t = 0;
	struct stat st;

+
	tmpdir = getenv("TMPDIR");
+
	if (tmpdir == NULL)
+
		tmpdir = "/tmp";
+
	strlcpy(tmp, tmpdir, sizeof(tmp));
+
	strlcat(tmp, "/auditfile.tbz", sizeof(tmp));
+

	if (stat(dest, &st) != -1) {
		t = st.st_mtime;
	}