[pacman-dev] [PATCH] Include trailing slash in _alpm_mkdtemp
Allan McRae
allan at archlinux.org
Wed Jan 8 12:29:52 UTC 2020
Signed-off-by: Allan McRae <allan at archlinux.org>
---
lib/libalpm/trans.c | 4 ++--
lib/libalpm/util.c | 6 +++++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
index e4c8e404..50d80866 100644
--- a/lib/libalpm/trans.c
+++ b/lib/libalpm/trans.c
@@ -358,9 +358,9 @@ int _alpm_runscriptlet(alpm_handle_t *handle, const char *filepath,
}
/* either extract or copy the scriptlet */
- len += strlen("/.INSTALL");
+ len += strlen(".INSTALL");
MALLOC(scriptfn, len, free(tmpdir); RET_ERR(handle, ALPM_ERR_MEMORY, -1));
- snprintf(scriptfn, len, "%s/.INSTALL", tmpdir);
+ snprintf(scriptfn, len, "%s.INSTALL", tmpdir);
if(is_archive) {
if(_alpm_unpack_single(handle, filepath, tmpdir, ".INSTALL")) {
retval = 1;
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index 514681d1..dacabdad 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -154,9 +154,10 @@ int _alpm_mkdtemp(alpm_handle_t *handle, char **tmpdir)
ASSERT(tmpdir != NULL, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, 0));
- len = strlen(handle->root) + strlen("tmp/alpm_XXXXXX") + 1;
+ len = strlen(handle->root) + strlen("tmp/alpm_XXXXXX/") + 1;
MALLOC(*tmpdir, len, RET_ERR(handle, ALPM_ERR_MEMORY, 0));
snprintf(*tmpdir, len, "%stmp/", handle->root);
+
if(access(*tmpdir, F_OK) != 0) {
_alpm_makepath_mode(*tmpdir, 01777);
}
@@ -167,6 +168,9 @@ int _alpm_mkdtemp(alpm_handle_t *handle, char **tmpdir)
return 0;
}
+ (*tmpdir)[len - 2] = '/';
+ (*tmpdir)[len - 1] = '\0';
+
return len;
}
--
2.24.1
More information about the pacman-dev
mailing list