From a299262011692b86b39ed5911418ca5b83f4a68e Mon Sep 17 00:00:00 2001 From: keis Date: Sat, 19 Feb 2011 18:38:06 +0100 Subject: fix crash when using uri without argument --- src/uzbl-core.c | 5 ++++- tests/test-command.c | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/uzbl-core.c b/src/uzbl-core.c index b2e7a7a..779f378 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -737,7 +737,8 @@ act_dump_config_as_events() { void load_uri(WebKitWebView *web_view, GArray *argv, GString *result) { (void) web_view; (void) result; - set_var_value("uri", argv_idx(argv, 0)); + gchar * uri = argv_idx(argv, 0); + set_var_value("uri", uri ? uri : ""); } /* Javascript*/ @@ -1275,6 +1276,8 @@ set_var_value(const gchar *name, gchar *val) { char *endp = NULL; char *buf = NULL; + g_assert(val != NULL); + if( (c = g_hash_table_lookup(uzbl.comm.proto_var, name)) ) { if(!c->writeable) return FALSE; diff --git a/tests/test-command.c b/tests/test-command.c index 55bf316..6b55fb3 100644 --- a/tests/test-command.c +++ b/tests/test-command.c @@ -282,6 +282,11 @@ test_js (void) { g_string_free(result, TRUE); } +void test_uri(void) { + /* Testing for a crash, not crashing is a pass */ + parse_cmd_line("uri", NULL); +} + void test_last_result (void) { GString *result = g_string_new(""); @@ -313,6 +318,7 @@ main (int argc, char *argv[]) { g_test_add("/test-command/event", struct EventFixture, NULL, event_fixture_setup, test_event, event_fixture_teardown); g_test_add_func("/test-command/print", test_print); + g_test_add_func("/test-command/uri", test_uri); g_test_add_func("/test-command/scroll", test_scroll); g_test_add_func("/test-command/toggle-status", test_toggle_status); g_test_add_func("/test-command/sync-sh", test_sync_sh); @@ -329,7 +335,7 @@ main (int argc, char *argv[]) { uzbl.state.config_file = "/tmp/uzbl-config"; uzbl.comm.fifo_path = "/tmp/some-nonexistant-fifo"; uzbl.comm.socket_path = "/tmp/some-nonexistant-socket"; - uzbl.state.uri = "http://example.org/"; + uzbl.state.uri = g_strdup("http://example.org/"); uzbl.gui.main_title = "Example.Org"; uzbl.state.instance_name = INSTANCE_NAME; -- cgit v1.2.3