[sushi] sushi-pdf-loader: make sure not to reference out of scope values
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sushi] sushi-pdf-loader: make sure not to reference out of scope values
- Date: Mon, 23 Apr 2018 23:54:41 +0000 (UTC)
commit 0e7856afb9f2194579cfc0e5545f2a402df6f020
Author: Cosimo Cecchi <cosimo endlessm com>
Date: Mon Apr 23 16:08:53 2018 -0700
sushi-pdf-loader: make sure not to reference out of scope values
Use g_strdupv() to copy the argv array, or we may end up using out of
scope values when actually trying to spawn libreoffice, which will break
document conversion.
src/libsushi/sushi-pdf-loader.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/src/libsushi/sushi-pdf-loader.c b/src/libsushi/sushi-pdf-loader.c
index c1f3649..16c3221 100644
--- a/src/libsushi/sushi-pdf-loader.c
+++ b/src/libsushi/sushi-pdf-loader.c
@@ -209,7 +209,7 @@ load_libreoffice (SushiPdfLoader *self)
gboolean res;
GPid pid;
GError *error = NULL;
- const gchar **argv = NULL;
+ gchar **argv = NULL;
flatpak_path = g_find_program_in_path ("flatpak");
if (flatpak_path != NULL)
@@ -265,7 +265,7 @@ load_libreoffice (SushiPdfLoader *self)
flatpak_argv[10] = pdf_dir;
flatpak_argv[11] = doc_path;
- argv = flatpak_argv;
+ argv = g_strdupv ((gchar **) flatpak_argv);
} else {
const gchar *libreoffice_argv[] = {
NULL, /* to be replaced with binary */
@@ -279,7 +279,7 @@ load_libreoffice (SushiPdfLoader *self)
libreoffice_argv[4] = pdf_dir;
libreoffice_argv[5] = doc_path;
- argv = libreoffice_argv;
+ argv = g_strdupv ((gchar **) libreoffice_argv);
}
tmp_name = g_strjoinv (" ", (gchar **) argv);
@@ -297,6 +297,7 @@ load_libreoffice (SushiPdfLoader *self)
g_free (flatpak_path);
g_free (flatpak_doc);
g_free (flatpak_dir);
+ g_strfreev (argv);
if (!res) {
g_warning ("Error while spawning libreoffice: %s",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]