[pacman-dev] [PATCH] alpm_initialize: Fix double slash in sys hook dir path

David Macek david.macek.0 at gmail.com
Sun Nov 29 13:55:15 UTC 2015


The path of the default system hook directory was created
by concatenating `myhandle->root` (usually "/"), and
SYSHOOKDIR (usually "/usr/share/libalpm/hooks/"), resulting
in "//usr/share/libalpm/hooks/". Fix this by skipping the
initial slash from SYSHOOKDIR.
---
 lib/libalpm/alpm.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index 0798c0b..54dfade 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -65,8 +65,11 @@ alpm_handle_t SYMEXPORT *alpm_initialize(const char *root, const char *dbpath,
 		goto cleanup;
 	}
 
-	MALLOC(hookdir, strlen(myhandle->root) + strlen(SYSHOOKDIR) + 1, goto cleanup);
-	sprintf(hookdir, "%s%s", myhandle->root, SYSHOOKDIR);
+	/* to contatenate myhandle->root (ends with a slash) with SYSHOOKDIR (starts
+	 * with a slash) correctly, we skip SYSHOOKDIR[0]; the regular +1 therefore
+	 * disappears from the allocation */
+	MALLOC(hookdir, strlen(myhandle->root) + strlen(SYSHOOKDIR), goto cleanup);
+	sprintf(hookdir, "%s%s", myhandle->root, SYSHOOKDIR + 1);
 	myhandle->hookdirs = alpm_list_add(NULL, hookdir);
 
 	/* set default database extension */
-- 
2.6.2.windows.1
-- 
David Macek

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4254 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://lists.archlinux.org/pipermail/pacman-dev/attachments/20151129/940abcdc/attachment.p7s>


More information about the pacman-dev mailing list