From a9d55c87e7d94c3de9228ba8f71668c169b4146c Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 11 Oct 2012 01:50:27 -0500 Subject: Fix execl call "xoo --device FILENAME" must be a single string when passed to sh -c, otherwise the arguments are lost. Also, use symbolic constant SIGKILL for portability. Signed-off-by: Yaakov Selkowitz --- src/callbacks.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/callbacks.c b/src/callbacks.c index e46314e..9cbdeb8 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -140,6 +140,7 @@ on_select_device (GtkMenuItem * menuitem, FakeApp * app) if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { + char cmd[PATH_MAX + 13]; char *filename; @@ -149,9 +150,10 @@ on_select_device (GtkMenuItem * menuitem, FakeApp * app) /* xxx FIXME, This is gross - just a very nasty hack for now xxx */ - kill (xnest_pid, 9); + kill (xnest_pid, SIGKILL); sleep (2); - execl ("/bin/sh", "sh", "-c", "xoo", "--device", filename, NULL); + sprintf (cmd, "xoo --device %s", filename); + execl ("/bin/sh", "sh", "-c", cmd, NULL); g_warning ("Failed load device %s\n", filename); -- cgit v1.2.3