summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Alan Fitton <alan@eth0.org.uk>2012-08-13 07:23:52 +0100
committerGravatar Alan Fitton <alan@eth0.org.uk>2012-08-13 07:23:52 +0100
commit189a7111324b5076d2414a83d237f41156d95e2f (patch)
tree00b928d36a083045b023ca7556dd93983922a8d0 /src
parent20c5f5f3c2c9e2f2f415003dc3af92ac4dffae81 (diff)
fix a possible and rare NULL ptr dereference in an abrt crash report I got, run GTK init before converting command line arguments to hopefully avoid GTK/glib debugging flags being passed as torrent filenames.
Diffstat (limited to 'src')
-rw-r--r--src/main.c6
-rw-r--r--src/trg-gtk-app.c10
-rw-r--r--src/trg-main-window.c2
3 files changed, 14 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 3ef3709..2558e1b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -262,7 +262,7 @@ static gchar **convert_args(int argc, char *argv[])
int main(int argc, char *argv[])
{
#if WIN32 || !GTK_CHECK_VERSION( 3, 0, 0 )
- gchar **args = convert_args(argc, argv);
+ gchar **args;
#endif
gint exitCode = EXIT_SUCCESS;
TrgClient *client;
@@ -271,6 +271,10 @@ int main(int argc, char *argv[])
g_thread_init(NULL);
gtk_init(&argc, &argv);
+#if WIN32 || !GTK_CHECK_VERSION( 3, 0, 0 )
+ args = convert_args(argc, argv);
+#endif
+
curl_global_init(CURL_GLOBAL_ALL);
client = trg_client_new();
diff --git a/src/trg-gtk-app.c b/src/trg-gtk-app.c
index afc07be..e0ddcf2 100644
--- a/src/trg-gtk-app.c
+++ b/src/trg-gtk-app.c
@@ -99,8 +99,14 @@ trg_gtk_app_command_line(GApplication * application,
{
GList *windows =
gtk_application_get_windows(GTK_APPLICATION(application));
- TrgMainWindow *window = TRG_MAIN_WINDOW(windows->data);
- gchar **argv = g_application_command_line_get_arguments(cmdline, NULL);
+ TrgMainWindow *window;
+ gchar **argv;
+
+ if (!windows || !windows->data)
+ return 1;
+
+ window = TRG_MAIN_WINDOW(windows->data);
+ argv = g_application_command_line_get_arguments(cmdline, NULL);
if (g_application_command_line_get_is_remote(cmdline)) {
if (!argv[0]) {
diff --git a/src/trg-main-window.c b/src/trg-main-window.c
index 3020b3d..3691828 100644
--- a/src/trg-main-window.c
+++ b/src/trg-main-window.c
@@ -306,7 +306,7 @@ update_selected_torrent_notebook(TrgMainWindow * win, gint mode, gint64 id)
trg_peers_model_update(priv->peersModel,
TRG_TREE_VIEW(priv->peersTreeView),
trg_client_get_serial(client), t, mode);
- } else if (id < 0) {
+ } else {
trg_main_window_torrent_scrub(win);
}