diff options
author | Eion Robb <eion@robbmob.com> | 2020-08-24 12:55:41 +0300 |
---|---|---|
committer | Eion Robb <eion@robbmob.com> | 2020-08-24 12:55:41 +0300 |
commit | 2295eb21e68ab208aca79f91cfa97f3ab4b5f046 (patch) | |
tree | c7682142147c099d7a7252c12ed36567f6b45941 | |
parent | a049f3e4b3dee68300860a6aa790f6b92c4d164f (diff) |
Fix some static analysis warnings
-rw-r--r-- | skypeweb/libskypeweb.c | 6 | ||||
-rw-r--r-- | skypeweb/libskypeweb.h | 14 | ||||
-rw-r--r-- | skypeweb/purple2compat/http.c | 23 | ||||
-rw-r--r-- | skypeweb/purple2compat/purple-socket.c | 8 | ||||
-rw-r--r-- | skypeweb/purplecompat.h | 2 | ||||
-rw-r--r-- | skypeweb/skypeweb_contacts.c | 15 | ||||
-rw-r--r-- | skypeweb/skypeweb_login.c | 1 | ||||
-rw-r--r-- | skypeweb/skypeweb_messages.c | 43 |
8 files changed, 69 insertions, 43 deletions
diff --git a/skypeweb/libskypeweb.c b/skypeweb/libskypeweb.c index 3ae43f1..a49b7d1 100644 --- a/skypeweb/libskypeweb.c +++ b/skypeweb/libskypeweb.c @@ -120,8 +120,8 @@ skypeweb_tooltip_text(PurpleBuddy *buddy, PurpleNotifyUserInfo *user_info, gbool g_free(escaped);
}
if (sbuddy->fullname && *sbuddy->fullname) {
- gchar *escaped = g_markup_printf_escaped("%s", sbuddy->display_name);
- purple_notify_user_info_add_pair_html(user_info, "Full Name", sbuddy->fullname);
+ gchar *escaped = g_markup_printf_escaped("%s", sbuddy->fullname);
+ purple_notify_user_info_add_pair_html(user_info, "Full Name", escaped);
g_free(escaped);
}
}
@@ -520,7 +520,7 @@ skypeweb_cmd_topic(PurpleConversation *conv, const gchar *cmd, gchar **args, gch return PURPLE_CMD_RET_OK;
}
- skypeweb_chat_set_topic(pc, id, args ? args[0] : NULL);
+ skypeweb_chat_set_topic(pc, id, args[0]);
return PURPLE_CMD_RET_OK;
}
diff --git a/skypeweb/libskypeweb.h b/skypeweb/libskypeweb.h index f5dd0d5..09add09 100644 --- a/skypeweb/libskypeweb.h +++ b/skypeweb/libskypeweb.h @@ -74,19 +74,19 @@ #include <json-glib/json-glib.h> #define json_object_get_int_member(JSON_OBJECT, MEMBER) \ - (JSON_OBJECT && json_object_has_member(JSON_OBJECT, MEMBER) ? json_object_get_int_member(JSON_OBJECT, MEMBER) : 0) + ((JSON_OBJECT) && json_object_has_member((JSON_OBJECT), (MEMBER)) ? json_object_get_int_member((JSON_OBJECT), (MEMBER)) : 0) #define json_object_get_string_member(JSON_OBJECT, MEMBER) \ - (JSON_OBJECT && json_object_has_member(JSON_OBJECT, MEMBER) ? json_object_get_string_member(JSON_OBJECT, MEMBER) : NULL) + ((JSON_OBJECT) && json_object_has_member((JSON_OBJECT), (MEMBER)) ? json_object_get_string_member((JSON_OBJECT), (MEMBER)) : NULL) #define json_object_get_array_member(JSON_OBJECT, MEMBER) \ - (JSON_OBJECT && json_object_has_member(JSON_OBJECT, MEMBER) ? json_object_get_array_member(JSON_OBJECT, MEMBER) : NULL) + ((JSON_OBJECT) && json_object_has_member((JSON_OBJECT), (MEMBER)) ? json_object_get_array_member((JSON_OBJECT), (MEMBER)) : NULL) #define json_object_get_object_member(JSON_OBJECT, MEMBER) \ - (JSON_OBJECT && json_object_has_member(JSON_OBJECT, MEMBER) ? json_object_get_object_member(JSON_OBJECT, MEMBER) : NULL) + ((JSON_OBJECT) && json_object_has_member((JSON_OBJECT), (MEMBER)) ? json_object_get_object_member((JSON_OBJECT), (MEMBER)) : NULL) #define json_object_get_boolean_member(JSON_OBJECT, MEMBER) \ - (JSON_OBJECT && json_object_has_member(JSON_OBJECT, MEMBER) ? json_object_get_boolean_member(JSON_OBJECT, MEMBER) : FALSE) + ((JSON_OBJECT) && json_object_has_member((JSON_OBJECT), (MEMBER)) ? json_object_get_boolean_member((JSON_OBJECT), (MEMBER)) : FALSE) #define json_array_get_length(JSON_ARRAY) \ - (JSON_ARRAY ? json_array_get_length(JSON_ARRAY) : 0) + ((JSON_ARRAY) ? json_array_get_length(JSON_ARRAY) : 0) #define json_node_get_array(JSON_NODE) \ - (JSON_NODE && JSON_NODE_TYPE(JSON_NODE) == JSON_NODE_ARRAY ? json_node_get_array(JSON_NODE) : NULL) + ((JSON_NODE) && JSON_NODE_TYPE(JSON_NODE) == (JSON_NODE_ARRAY) ? json_node_get_array(JSON_NODE) : NULL) #include "accountopt.h" #include "core.h" diff --git a/skypeweb/purple2compat/http.c b/skypeweb/purple2compat/http.c index df957d2..f3692ed 100644 --- a/skypeweb/purple2compat/http.c +++ b/skypeweb/purple2compat/http.c @@ -48,7 +48,7 @@ #define PURPLE_HTTP_REQUEST_DEFAULT_MAX_REDIRECTS 20 #define PURPLE_HTTP_REQUEST_DEFAULT_TIMEOUT 30 #define PURPLE_HTTP_REQUEST_DEFAULT_MAX_LENGTH 1048576 -#define PURPLE_HTTP_REQUEST_HARD_MAX_LENGTH G_MAXINT32-1 +#define PURPLE_HTTP_REQUEST_HARD_MAX_LENGTH (G_MAXINT32-1) #define PURPLE_HTTP_PROGRESS_WATCHER_DEFAULT_INTERVAL 250000 @@ -334,7 +334,7 @@ static time_t purple_http_rfc1123_to_time(const gchar *str) g_free(d_time); if (month > 12) { - purple_debug_warning("http", "Invalid month: %s\n", d_month); + purple_debug_warning("http", "Invalid month: %d\n", month); g_free(iso_date); return 0; } @@ -405,7 +405,6 @@ purple_http_gz_put(PurpleHttpGzStream *gzs, const gchar *buf, gsize len) gsize decompressed_len; zs->next_out = (Bytef*)decompressed_buff; - zs->avail_out = sizeof(decompressed_buff); decompressed_len = zs->avail_out = sizeof(decompressed_buff); gzres = inflate(zs, Z_FULL_FLUSH); decompressed_len -= zs->avail_out; @@ -431,7 +430,8 @@ purple_http_gz_put(PurpleHttpGzStream *gzs, const gchar *buf, gsize len) purple_debug_error("http", "Decompression failed (%d): %s\n", gzres, zs->msg); - gzs->failed = TRUE; + gzs->failed = TRUE;
+ g_string_free(ret, TRUE); return NULL; } } @@ -777,7 +777,7 @@ static void _purple_http_gen_headers(PurpleHttpConnection *hc) purple_http_request_is_method(req, "post"))) { g_string_append_printf(h, "Content-Length: %u\r\n", - req->contents_length); + (unsigned int) req->contents_length); } if (proxy_http) @@ -1602,7 +1602,7 @@ PurpleHttpConnection * purple_http_request(PurpleConnection *gc, hc, request->url); else purple_debug_misc("http", "Performing new request %p to %s.\n", - hc, hc->url ? hc->url->host : NULL); + hc, hc->url ? hc->url->host : ""); if (!hc->url || hc->url->host == NULL || hc->url->host[0] == '\0') { purple_debug_error("http", "Invalid URL requested.\n"); @@ -2025,7 +2025,7 @@ void purple_http_cookie_jar_set(PurpleHttpCookieJar *cookie_jar, gchar *escaped_name = g_strdup(purple_url_encode(name)); gchar *escaped_value = NULL; - if (escaped_value) { + if (value) { escaped_value = g_strdup(purple_url_encode(value)); } @@ -3077,7 +3077,7 @@ purple_http_url_print(PurpleHttpURL *parsed_url) if (parsed_url->username || parsed_url->password) { if (parsed_url->username) g_string_append(url, parsed_url->username); - g_string_append_printf(url, ":%s", parsed_url->password); + g_string_append_printf(url, ":%s", parsed_url->password ? parsed_url->password : ""); g_string_append(url, "@"); before_host_printed = TRUE; } @@ -3222,9 +3222,10 @@ void purple_http_uninit(void) purple_http_re_url_host = NULL; g_regex_unref(purple_http_re_rfc1123); purple_http_re_rfc1123 = NULL; - - g_list_foreach(purple_http_hc_list, purple_http_foreach_conn_cancel, - NULL); +
+ if (purple_http_hc_list != NULL) + g_list_foreach(purple_http_hc_list, purple_http_foreach_conn_cancel, + NULL); if (purple_http_hc_list != NULL || 0 != g_hash_table_size(purple_http_hc_by_ptr) || diff --git a/skypeweb/purple2compat/purple-socket.c b/skypeweb/purple2compat/purple-socket.c index bf429ed..fe64f89 100644 --- a/skypeweb/purple2compat/purple-socket.c +++ b/skypeweb/purple2compat/purple-socket.c @@ -77,9 +77,11 @@ handle_remove(PurpleSocket *ps) PurpleConnection *gc = ps->gc; GSList *l; - l = g_hash_table_lookup(handles, gc); - l = g_slist_remove(l, ps); - g_hash_table_insert(handles, gc, l); + l = g_hash_table_lookup(handles, gc);
+ if (l != NULL) { + l = g_slist_remove(l, ps); + g_hash_table_insert(handles, gc, l);
+ } } void diff --git a/skypeweb/purplecompat.h b/skypeweb/purplecompat.h index c6afb9b..63d3c85 100644 --- a/skypeweb/purplecompat.h +++ b/skypeweb/purplecompat.h @@ -94,7 +94,7 @@ purple_blist_node_set_transient(PurpleBlistNode *node, gboolean transient) #define purple_conversations_find_im_with_account(name, account) \ PURPLE_CONV_IM(purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, account)) #define purple_im_conversation_new(account, from) PURPLE_CONV_IM(purple_conversation_new(PURPLE_CONV_TYPE_IM, account, from)) -#define PURPLE_CONVERSATION(chatorim) (chatorim == NULL ? NULL : chatorim->conv) +#define PURPLE_CONVERSATION(chatorim) ((chatorim) == NULL ? NULL : (chatorim)->conv) #define PURPLE_IM_CONVERSATION(conv) PURPLE_CONV_IM(conv) #define PURPLE_CHAT_CONVERSATION(conv) PURPLE_CONV_CHAT(conv) #define PURPLE_IS_IM_CONVERSATION(conv) (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) diff --git a/skypeweb/skypeweb_contacts.c b/skypeweb/skypeweb_contacts.c index 14cfdcb..a18e298 100644 --- a/skypeweb/skypeweb_contacts.c +++ b/skypeweb/skypeweb_contacts.c @@ -32,6 +32,7 @@ static void purple_conversation_write_system_message_ts( PurpleMessage *pmsg = purple_message_new_system(msg, flags);
purple_message_set_time(pmsg, ts);
purple_conversation_write_message(conv, pmsg);
+ purple_message_destroy(pmsg);
}
static void purple_conversation_write_img_message(
PurpleConversation *conv, const char* who, const gchar *msg,
@@ -46,6 +47,7 @@ static void purple_conversation_write_img_message( }
purple_conversation_write_message(conv, pmsg);
+ purple_message_destroy(pmsg);
}
// Check that the conversation hasn't been closed
@@ -104,11 +106,16 @@ skypeweb_get_icon_now(PurpleBuddy *buddy) purple_debug_info("skypeweb", "getting new buddy icon for %s\n", purple_buddy_get_name(buddy));
sbuddy = purple_buddy_get_protocol_data(buddy);
- if (sbuddy != NULL && sbuddy->avatar_url && sbuddy->avatar_url[0]) {
+
+ if (!sbuddy || !sbuddy->sa || !sbuddy->sa->pc)
+ return;
+
+ if (sbuddy->avatar_url && sbuddy->avatar_url[0]) {
url = g_strdup(sbuddy->avatar_url);
} else {
url = g_strdup_printf("https://avatar.skype.com/v1/avatars/%s/public?returnDefaultImage=false", purple_url_encode(purple_buddy_get_name(buddy)));
}
+
sa = sbuddy->sa;
purple_http_get(sa->pc, skypeweb_get_icon_cb, buddy, url);
@@ -486,7 +493,7 @@ skypeweb_got_file_info(PurpleHttpConnection *http_conn, PurpleHttpResponse *resp } */
purple_debug_info("skypeweb", "File info: %s\n", data);
- if (!json_object_has_member(obj, "content_state") || !g_str_equal(json_object_get_string_member(obj, "content_state"), "ready")) {
+ if (!json_object_has_member(obj, "content_state") || !purple_strequal(json_object_get_string_member(obj, "content_state"), "ready")) {
skypeweb_present_uri_as_filetransfer(sa, json_object_get_string_member(obj, "status_location"), swft->from);
g_free(swft->url);
g_free(swft->from);
@@ -567,7 +574,7 @@ got_file_send_progress(PurpleHttpConnection *http_conn, PurpleHttpResponse *resp swft->url = g_strdup(json_object_get_string_member(obj, "status_location"));
}
- if (json_object_has_member(obj, "content_state") && g_str_equal(json_object_get_string_member(obj, "content_state"), "ready")) {
+ if (json_object_has_member(obj, "content_state") && purple_strequal(json_object_get_string_member(obj, "content_state"), "ready")) {
PurpleXmlNode *uriobject = purple_xmlnode_new("URIObject");
PurpleXmlNode *title = purple_xmlnode_new_child(uriobject, "Title");
PurpleXmlNode *description = purple_xmlnode_new_child(uriobject, "Description");
@@ -877,7 +884,7 @@ skypeweb_got_self_details(SkypeWebAccount *sa, JsonNode *node, gpointer user_dat if (!old_alias || !*old_alias) {
if (json_object_has_member(userobj, "displayname"))
displayname = json_object_get_string_member(userobj, "displayname");
- if (!displayname || g_str_equal(displayname, username))
+ if (!displayname || purple_strequal(displayname, username))
displayname = json_object_get_string_member(userobj, "firstname");
if (displayname)
diff --git a/skypeweb/skypeweb_login.c b/skypeweb/skypeweb_login.c index 223563a..a7841d8 100644 --- a/skypeweb/skypeweb_login.c +++ b/skypeweb/skypeweb_login.c @@ -36,6 +36,7 @@ skypeweb_login_did_auth(PurpleHttpConnection *http_conn, PurpleHttpResponse *res purple_connection_error(sa->pc,
PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
_("Failed getting Skype Token, please try logging in via browser first"));
+ return;
}
if (refresh_token == NULL) {
diff --git a/skypeweb/skypeweb_messages.c b/skypeweb/skypeweb_messages.c index 885aa74..f681e7b 100644 --- a/skypeweb/skypeweb_messages.c +++ b/skypeweb/skypeweb_messages.c @@ -131,6 +131,8 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource) PurpleConversation *conv = NULL;
gchar *convname = NULL;
+ g_return_if_fail(messagetype != NULL);
+
messagetype_parts = g_strsplit(messagetype, "/", -1);
if (json_object_has_member(resource, "clientmessageid"))
@@ -178,7 +180,11 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource) PurpleChatUser *cb;
from = skypeweb_contact_url_to_name(from);
- g_return_if_fail(from);
+ if (from == NULL) {
+ g_strfreev(messagetype_parts);
+ g_return_if_reached();
+ return;
+ }
// typing notification text, not personalized because of multiple "typing" events
if (purple_account_get_bool(sa->account, "show-typing-as-text", FALSE)) {
@@ -188,7 +194,7 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource) // get last message (first in GList)
if (conv && g_list_length(purple_conversation_get_message_history(conv))) {
PurpleMessage *last = g_list_nth_data(g_list_first(purple_conversation_get_message_history(conv)),0);
- last_message = g_strdup(purple_message_get_contents(last));
+ last_message = purple_message_get_contents(last);
}
// add typing notification to chat
@@ -227,7 +233,11 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource) }
from = skypeweb_contact_url_to_name(from);
- g_return_if_fail(from);
+ if (from == NULL) {
+ g_free(messagetype_parts);
+ g_return_if_reached();
+ return;
+ }
// Remove typing notification icon w/o "show-typing-as-icon" option check.
// Hard reset cbflags even if user changed settings while someone typing message.
@@ -348,7 +358,12 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource) convname = g_strconcat(skypeweb_user_url_prefix(convbuddyname), convbuddyname, NULL);
from = skypeweb_contact_url_to_name(from);
- g_return_if_fail(from);
+ if (from == NULL) {
+ g_free(convbuddyname);
+ g_free(convname);
+ g_return_if_reached();
+ return;
+ }
if (g_str_equal(messagetype_parts[0], "Control")) {
if (g_str_equal(messagetype_parts[1], "ClearTyping")) {
@@ -596,7 +611,7 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource) gchar *post, *url;
url = g_strdup_printf("/v1/users/ME/conversations/%s/properties?name=consumptionhorizon", purple_url_encode(convname));
- post = g_strdup_printf("{\"consumptionhorizon\":\"%s;%" G_GINT64_FORMAT ";%s\"}", id, skypeweb_get_js_time(), id);
+ post = g_strdup_printf("{\"consumptionhorizon\":\"%s;%" G_GINT64_FORMAT ";%s\"}", id ? id : "", skypeweb_get_js_time(), id ? id : "");
skypeweb_post_or_get(sa, SKYPEWEB_METHOD_PUT | SKYPEWEB_METHOD_SSL, sa->messages_host, url, post, NULL, NULL, TRUE);
@@ -669,7 +684,7 @@ process_endpointpresence_resource(SkypeWebAccount *sa, JsonObject *resource) case 1: //SkypeWeb
break;
default:
- purple_debug_warning("skypeweb", "Unknown typ %d: %s\n", typ, skypeNameVersion);
+ purple_debug_warning("skypeweb", "Unknown typ %d: %s\n", typ, skypeNameVersion ? skypeNameVersion : "");
break;
}
}
@@ -723,19 +738,19 @@ skypeweb_poll_cb(SkypeWebAccount *sa, JsonNode *node, gpointer user_data) const gchar *resourceType = json_object_get_string_member(message, "resourceType");
JsonObject *resource = json_object_get_object_member(message, "resource");
- if (g_str_equal(resourceType, "NewMessage"))
+ if (purple_strequal(resourceType, "NewMessage"))
{
process_message_resource(sa, resource);
- } else if (g_str_equal(resourceType, "UserPresence"))
+ } else if (purple_strequal(resourceType, "UserPresence"))
{
process_userpresence_resource(sa, resource);
- } else if (g_str_equal(resourceType, "EndpointPresence"))
+ } else if (purple_strequal(resourceType, "EndpointPresence"))
{
process_endpointpresence_resource(sa, resource);
- } else if (g_str_equal(resourceType, "ConversationUpdate"))
+ } else if (purple_strequal(resourceType, "ConversationUpdate"))
{
process_conversation_resource(sa, resource);
- } else if (g_str_equal(resourceType, "ThreadUpdate"))
+ } else if (purple_strequal(resourceType, "ThreadUpdate"))
{
process_thread_resource(sa, resource);
}
@@ -775,7 +790,7 @@ skypeweb_mark_conv_seen(PurpleConversation *conv, PurpleConversationUpdateType t if (!PURPLE_CONNECTION_IS_CONNECTED(pc))
return;
- if (g_strcmp0(purple_protocol_get_id(purple_connection_get_protocol(pc)), SKYPEWEB_PLUGIN_ID))
+ if (!purple_strequal(purple_protocol_get_id(purple_connection_get_protocol(pc)), SKYPEWEB_PLUGIN_ID))
return;
if (type == PURPLE_CONVERSATION_UPDATE_UNSEEN) {
@@ -1344,7 +1359,7 @@ skypeweb_conv_send_typing(PurpleConversation *conv, PurpleIMTypingState state) if (!PURPLE_CONNECTION_IS_CONNECTED(pc))
return 0;
- if (g_strcmp0(purple_protocol_get_id(purple_connection_get_protocol(pc)), SKYPEWEB_PLUGIN_ID))
+ if (!purple_strequal(purple_protocol_get_id(purple_connection_get_protocol(pc)), SKYPEWEB_PLUGIN_ID))
return 0;
url = g_strdup_printf("/v1/users/ME/conversations/%s/messages", purple_url_encode(purple_conversation_get_name(conv)));
@@ -1542,7 +1557,7 @@ const gchar *message, PurpleMessageFlags flags) chatname = purple_conversation_get_name(PURPLE_CONVERSATION(chatconv));
if (!chatname)
return -1;
- }
+ }
skypeweb_send_message(sa, chatname, message);
|