diff --git a/libsoup/soup-auth-basic.c b/libsoup/soup-auth-basic.c index 5f1e718..d8b3226 100644 --- a/libsoup/soup-auth-basic.c +++ b/libsoup/soup-auth-basic.c @@ -74,7 +74,7 @@ soup_auth_basic_get_protection_space (SoupAuth *auth, SoupURI *source_uri) /* Strip filename component */ p = strrchr (space, '/'); - if (p == space && p[1]) + if (p && p == space && p[1]) p[1] = '\0'; else if (p && p[1]) *p = '\0'; diff --git a/libsoup/soup-auth-negotiate.c b/libsoup/soup-auth-negotiate.c index 94863d6..f94760c 100644 --- a/libsoup/soup-auth-negotiate.c +++ b/libsoup/soup-auth-negotiate.c @@ -268,7 +268,7 @@ soup_auth_negotiate_update_connection (SoupConnectionAuth *auth, SoupMessage *ms } else { /* FIXME: report further upward via * soup_message_get_error_message */ - g_warning ("gssapi step failed: %s", err->message); + g_warning ("gssapi step failed: %s", err ? err->message : "Unknown error"); success = FALSE; } } else if (!strncmp (header, "Negotiate ", 10)) { diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c index a180c6e..abef34c 100644 --- a/libsoup/soup-message-headers.c +++ b/libsoup/soup-message-headers.c @@ -1324,7 +1324,7 @@ content_type_setter (SoupMessageHeaders *hdrs, const char *value) { g_free (hdrs->content_type); if (value) { - char *content_type, *p; + char *content_type = NULL, *p; parse_content_foo (hdrs, "Content-Type", &content_type, NULL); p = strpbrk (content_type, " /"); diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c index 42dcda9..2da6344 100644 --- a/libsoup/soup-xmlrpc.c +++ b/libsoup/soup-xmlrpc.c @@ -588,7 +588,7 @@ signature_get_next_complete_type (const char **signature) (*signature)++; - if ( (*signature)[0] == stack[stack_len - 1]) + if ( stack_len > 0 && (*signature)[0] == stack[stack_len - 1]) stack_len--; } while (stack_len > 0); diff --git a/tests/test-utils.c b/tests/test-utils.c index 9c74206..fc58362 100644 --- a/tests/test-utils.c +++ b/tests/test-utils.c @@ -676,6 +678,8 @@ soup_test_request_read_all (SoupRequest *req, if (!SOUP_IS_SESSION_SYNC (soup_request_get_session (req))) data.loop = g_main_loop_new (g_main_context_get_thread_default (), FALSE); + else + data.loop = NULL; do { if (SOUP_IS_SESSION_SYNC (soup_request_get_session (req))) { @@ -691,7 +695,7 @@ soup_test_request_read_all (SoupRequest *req, } } while (nread > 0); - if (!SOUP_IS_SESSION_SYNC (soup_request_get_session (req))) + if (data.loop) g_main_loop_unref (data.loop); return nread == 0;