From 3ad283945ecde3c951f18c67c3855edab53f3718 Mon Sep 17 00:00:00 2001 From: Lewin Bormann Date: Tue, 9 Jul 2019 20:44:33 +0200 Subject: [PATCH] NULL-terminate argument vector given to kpsewhich. Otherwise glib will provide a (likely spurious) last element in argv, causing EFAULT to be returned from execve in the child: ... [pid 32237] execve("/usr/local/bin/kpsewhich", ["kpsewhich", "standalone", 0x1], 0x7ffe7141a078 /* 69 vars */) = -1 ENOENT (No such file or directory) [pid 32237] execve("/usr/bin/kpsewhich", ["kpsewhich", "standalone", 0x1], 0x7ffe7141a078 /* 69 vars */) = -1 EFAULT (Bad address) ... --- src/control/LatexController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/control/LatexController.cpp b/src/control/LatexController.cpp index 5849c37e..1856cf46 100644 --- a/src/control/LatexController.cpp +++ b/src/control/LatexController.cpp @@ -86,7 +86,7 @@ LatexController::FindDependencyStatus LatexController::findTexDependencies() g_free(pdflatex); // Check for 'standalone' latex package - static gchar* kpsewhichArgs[] = {g_strdup("kpsewhich"), g_strdup("standalone")}; + static gchar* kpsewhichArgs[] = {g_strdup("kpsewhich"), g_strdup("standalone"), nullptr}; auto kpsewhichFlags = GSpawnFlags(G_SPAWN_DEFAULT | G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL); GError* kpsewhichErr = nullptr; gint kpsewhichStatus;