[glib] Bug 600550 - (...) doesn't treat arguments properly



commit 77baa70eda24be0049d09123e4b81b1f03817110
Author: Christian Dywan <christian lanedo com>
Date:   Thu Nov 19 09:58:43 2009 -0600

    Bug 600550 - (...) doesn't treat arguments properly
    
    Add some additional checking to g_app_info_create_from_commandline to
    make it handle strange inputs more elegantly.

 gio/gdesktopappinfo.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
index 187ce4a..7770444 100644
--- a/gio/gdesktopappinfo.c
+++ b/gio/gdesktopappinfo.c
@@ -1607,6 +1607,8 @@ g_app_info_create_from_commandline (const char           *commandline,
   char *basename;
   GDesktopAppInfo *info;
 
+  g_return_val_if_fail (commandline, NULL);
+
   info = g_object_new (G_TYPE_DESKTOP_APP_INFO, NULL);
 
   info->filename = NULL;
@@ -1628,7 +1630,7 @@ g_app_info_create_from_commandline (const char           *commandline,
     {
       /* FIXME: this should be more robust. Maybe g_shell_parse_argv and use argv[0] */
       split = g_strsplit (commandline, " ", 2);
-      basename = g_path_get_basename (split[0]);
+      basename = split[0] ? g_path_get_basename (split[0]) : NULL;
       g_strfreev (split);
       info->name = basename;
       if (info->name == NULL)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]