diff options
73 files changed, 184 insertions, 162 deletions
diff --git a/finch/gntaccount.c b/finch/gntaccount.c index fa66b04a97..a08f7ffffb 100644 --- a/finch/gntaccount.c +++ b/finch/gntaccount.c @@ -765,7 +765,8 @@ account_list_key_pressed_cb(GntWidget *widget, const char *text, gpointer null) count = g_list_length(accounts); pos = g_list_index(accounts, account); pos = (move + pos + count + 1) % (count + 1); - purple_accounts_reorder(account, pos); + if (pos >= 0) + purple_accounts_reorder(account, pos); /* I don't like this, but recreating the entire list seems to be * the easiest way of doing it */ diff --git a/libpurple/account.c b/libpurple/account.c index 2c90da9462..526cd7bb34 100644 --- a/libpurple/account.c +++ b/libpurple/account.c @@ -3037,7 +3037,7 @@ purple_accounts_delete(PurpleAccount *account) } void -purple_accounts_reorder(PurpleAccount *account, gint new_index) +purple_accounts_reorder(PurpleAccount *account, guint new_index) { gint index; GList *l; @@ -3047,7 +3047,7 @@ purple_accounts_reorder(PurpleAccount *account, gint new_index) index = g_list_index(accounts, account); - if (index == -1) { + if (index < 0) { purple_debug_error("account", "Unregistered account (%s) discovered during reorder!\n", purple_account_get_username(account)); @@ -3056,7 +3056,7 @@ purple_accounts_reorder(PurpleAccount *account, gint new_index) l = g_list_nth(accounts, index); - if (new_index > index) + if (new_index > (guint)index) new_index--; /* Remove the old one. */ diff --git a/libpurple/account.h b/libpurple/account.h index 564b32ba31..b1b689d4b2 100644 --- a/libpurple/account.h +++ b/libpurple/account.h @@ -1118,7 +1118,7 @@ void purple_accounts_delete(PurpleAccount *account); * @param account The account to reorder. * @param new_index The new index for the account. */ -void purple_accounts_reorder(PurpleAccount *account, gint new_index); +void purple_accounts_reorder(PurpleAccount *account, guint new_index); /** * Returns a list of all accounts. diff --git a/libpurple/ciphers/aes.c b/libpurple/ciphers/aes.c index de592c6431..f085fc5d7b 100644 --- a/libpurple/ciphers/aes.c +++ b/libpurple/ciphers/aes.c @@ -162,14 +162,14 @@ purple_aes_pad_pkcs7(const guchar input[], size_t in_len, size_t *out_len) static ssize_t purple_aes_unpad_pkcs7(guchar input[], size_t in_len) { - int padding_len, i; + guchar padding_len, i; size_t out_len; g_return_val_if_fail(input != NULL, -1); g_return_val_if_fail(in_len > 0, -1); padding_len = input[in_len - 1]; - if (padding_len <= 0 || padding_len > PURPLE_AES_BLOCK_SIZE || + if (padding_len == 0 || padding_len > PURPLE_AES_BLOCK_SIZE || padding_len > in_len) { purple_debug_warning("cipher-aes", "Invalid padding length: %d (total %" G_GSIZE_FORMAT ") - " diff --git a/libpurple/ciphers/des.c b/libpurple/ciphers/des.c index 931f18dd76..51e2da8192 100644 --- a/libpurple/ciphers/des.c +++ b/libpurple/ciphers/des.c @@ -393,11 +393,11 @@ static ssize_t des_encrypt(PurpleCipherContext *context, const guchar input[], size_t in_len, guchar output[], size_t out_size) { - int offset = 0; + gsize offset = 0; int i = 0; - int tmp; + gsize tmp; guint8 buf[8] = {0,0,0,0,0,0,0,0}; - ssize_t out_len; + gsize out_len; g_return_val_if_fail(out_size >= in_len, -1); @@ -410,6 +410,7 @@ des_encrypt(PurpleCipherContext *context, const guchar input[], size_t in_len, } out_len = in_len; if(offset<in_len) { + g_return_val_if_fail(in_len >= offset, -1); out_len += in_len - offset; g_return_val_if_fail(out_size >= out_len, -1); tmp = offset; @@ -429,11 +430,11 @@ static ssize_t des_decrypt(PurpleCipherContext *context, const guchar input[], size_t in_len, guchar output[], size_t out_size) { - int offset = 0; + gsize offset = 0; int i = 0; - int tmp; + gsize tmp; guint8 buf[8] = {0,0,0,0,0,0,0,0}; - ssize_t out_len; + gsize out_len; g_return_val_if_fail(out_size >= in_len, -1); @@ -446,6 +447,7 @@ des_decrypt(PurpleCipherContext *context, const guchar input[], size_t in_len, } out_len = in_len; if(offset<in_len) { + g_return_val_if_fail(in_len >= offset, -1); out_len += in_len - offset; g_return_val_if_fail(out_size >= out_len, -1); tmp = offset; @@ -556,11 +558,11 @@ static ssize_t des3_ecb_encrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, guchar output[], size_t out_size) { - int offset = 0; + gsize offset = 0; int i = 0; - int tmp; + gsize tmp; guint8 buf[8] = {0,0,0,0,0,0,0,0}; - ssize_t out_len; + gsize out_len; g_return_val_if_fail(out_size >= in_len, -1); @@ -581,6 +583,7 @@ des3_ecb_encrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, } out_len = in_len; if (offset < in_len) { + g_return_val_if_fail(in_len >= offset, -1); out_len += in_len - offset; g_return_val_if_fail(out_size >= out_len, -1); tmp = offset; @@ -609,11 +612,11 @@ static ssize_t des3_cbc_encrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, guchar output[], size_t out_size) { - int offset = 0; + gsize offset = 0; int i = 0; - int tmp; + gsize tmp; guint8 buf[8]; - ssize_t out_len; + gsize out_len; memcpy(buf, ctx->iv, 8); g_return_val_if_fail(out_size >= in_len, -1); @@ -639,6 +642,7 @@ des3_cbc_encrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, } out_len = in_len; if (offset < in_len) { + g_return_val_if_fail(in_len >= offset, -1); out_len += in_len - offset; g_return_val_if_fail(out_size >= out_len, -1); tmp = offset; @@ -684,11 +688,11 @@ static ssize_t des3_ecb_decrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, guchar output[], size_t out_size) { - int offset = 0; + gsize offset = 0; int i = 0; - int tmp; + gsize tmp; guint8 buf[8] = {0,0,0,0,0,0,0,0}; - ssize_t out_len; + gsize out_len; g_return_val_if_fail(out_size >= in_len, -1); @@ -710,6 +714,7 @@ des3_ecb_decrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, } out_len = in_len; if (offset < in_len) { + g_return_val_if_fail(in_len >= offset, -1); out_len += in_len - offset; g_return_val_if_fail(out_size >= out_len, -1); tmp = offset; @@ -738,12 +743,12 @@ static ssize_t des3_cbc_decrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, guchar output[], size_t out_size) { - int offset = 0; + gsize offset = 0; int i = 0; - int tmp; + gsize tmp; guint8 buf[8] = {0,0,0,0,0,0,0,0}; guint8 link[8]; - ssize_t out_len; + gsize out_len; g_return_val_if_fail(out_size >= in_len, -1); @@ -768,6 +773,7 @@ des3_cbc_decrypt(struct _des3_ctx *ctx, const guchar input[], size_t in_len, } out_len = in_len; if(offset<in_len) { + g_return_val_if_fail(in_len >= offset, -1); out_len += in_len - offset; g_return_val_if_fail(out_size >= out_len, -1); tmp = offset; diff --git a/libpurple/ciphers/gchecksum.c b/libpurple/ciphers/gchecksum.c index 11ec463e4b..3e09ff4b54 100644 --- a/libpurple/ciphers/gchecksum.c +++ b/libpurple/ciphers/gchecksum.c @@ -62,12 +62,13 @@ purple_g_checksum_digest(PurpleCipherContext *context, GChecksumType type, checksum = purple_cipher_context_get_data(context); - g_return_val_if_fail(buff_len >= required_len, FALSE); + g_return_val_if_fail(required_len >= 0, FALSE); + g_return_val_if_fail(buff_len >= (gsize)required_len, FALSE); g_return_val_if_fail(checksum != NULL, FALSE); g_checksum_get_digest(checksum, digest, &digest_len); - if (digest_len != required_len) + if (digest_len != (gsize)required_len) return FALSE; purple_cipher_context_reset(context, NULL); diff --git a/libpurple/ciphers/hmac.c b/libpurple/ciphers/hmac.c index ec6b38bec3..00e6a0d99e 100644 --- a/libpurple/ciphers/hmac.c +++ b/libpurple/ciphers/hmac.c @@ -171,7 +171,7 @@ hmac_uninit(PurpleCipherContext *context) hmac_set_key(PurpleCipherContext *context, const guchar * key, size_t key_len) { struct HMAC_Context *hctx = purple_cipher_context_get_data(context); - int blocksize, i; + gsize blocksize, i; guchar *full_key; g_return_if_fail(hctx->hash != NULL); diff --git a/libpurple/ciphers/pbkdf2.c b/libpurple/ciphers/pbkdf2.c index 339ef5168b..51f31d08c9 100644 --- a/libpurple/ciphers/pbkdf2.c +++ b/libpurple/ciphers/pbkdf2.c @@ -249,7 +249,7 @@ purple_pbkdf2_digest(PurpleCipherContext *context, guchar digest[], size_t len) memset(halfkey, 0, halfkey_len); for (iter_no = 1; iter_no <= ctx_data->iter_count; iter_no++) { - int i; + guint i; purple_cipher_context_reset_state(hash, NULL); diff --git a/libpurple/media/backend-fs2.c b/libpurple/media/backend-fs2.c index aa0f68f283..7ecd9fd286 100644 --- a/libpurple/media/backend-fs2.c +++ b/libpurple/media/backend-fs2.c @@ -1976,7 +1976,7 @@ create_stream(PurpleMediaBackendFs2 *self, we need to do this to allow them to override when using non-standard TURN modes, like Google f.ex. */ gboolean got_turn_from_prpl = FALSE; - int i; + guint i; session = get_session(self, sess_id); diff --git a/libpurple/plugins/joinpart.c b/libpurple/plugins/joinpart.c index 9969022d36..1e55b05228 100644 --- a/libpurple/plugins/joinpart.c +++ b/libpurple/plugins/joinpart.c @@ -80,7 +80,7 @@ static gboolean should_hide_notice(PurpleConversation *conv, const char *name, GHashTable *users) { PurpleConvChat *chat; - int threshold; + guint threshold; struct joinpart_key key; time_t *last_said; diff --git a/libpurple/plugins/keyrings/internalkeyring.c b/libpurple/plugins/keyrings/internalkeyring.c index 2cf107e98e..f2e9f5d236 100644 --- a/libpurple/plugins/keyrings/internalkeyring.c +++ b/libpurple/plugins/keyrings/internalkeyring.c @@ -321,7 +321,7 @@ intkeyring_decrypt(intkeyring_buff_t *key, const gchar *str) verify_len = strlen(INTKEYRING_VERIFY_STR); /* Don't remove the len > 0 check! */ - if (plaintext_len > 0 && plaintext_len > verify_len && + if (plaintext_len > 0 && (gsize)plaintext_len > verify_len && plaintext[plaintext_len] == '\0') { verify_str = (gchar*)plaintext + plaintext_len - verify_len; diff --git a/libpurple/plugins/perl/perl-handlers.h b/libpurple/plugins/perl/perl-handlers.h index 0484025d48..b349c9da3d 100644 --- a/libpurple/plugins/perl/perl-handlers.h +++ b/libpurple/plugins/perl/perl-handlers.h @@ -25,7 +25,7 @@ typedef struct SV *callback; SV *data; PurplePlugin *plugin; - int iotag; + guint iotag; } PurplePerlTimeoutHandler; @@ -44,7 +44,7 @@ typedef struct SV *callback; SV *data; PurplePlugin *plugin; - int iotag; + guint iotag; } PurplePerlPrefsHandler; diff --git a/libpurple/plugins/signals-test.c b/libpurple/plugins/signals-test.c index ad4cd6083c..840b260d11 100644 --- a/libpurple/plugins/signals-test.c +++ b/libpurple/plugins/signals-test.c @@ -635,7 +635,7 @@ notify_email_cb(char *subject, char *from, char *to, char *url) { static void notify_emails_cb(char **subjects, char **froms, char **tos, char **urls, guint count) { - int i; + guint i; purple_debug_misc("signals test", "notify emails: count=%d\n", count); for(i=0; i<count && i<5; i++) { if(subjects[i]==NULL || froms[i]==NULL || tos[i]==NULL || urls[i]==NULL) continue; diff --git a/libpurple/plugins/ssl/ssl-gnutls.c b/libpurple/plugins/ssl/ssl-gnutls.c index dd6a1eeb78..9d38979b13 100644 --- a/libpurple/plugins/ssl/ssl-gnutls.c +++ b/libpurple/plugins/ssl/ssl-gnutls.c @@ -285,9 +285,9 @@ static void ssl_gnutls_handshake_cb(gpointer data, gint source, { const gnutls_datum_t *cert_list; - unsigned int cert_list_size = 0; + guint cert_list_size = 0; gnutls_session_t session=gnutls_data->session; - int i; + guint i; cert_list = gnutls_certificate_get_peers(session, &cert_list_size); diff --git a/libpurple/plugins/tcl/tcl_purple.h b/libpurple/plugins/tcl/tcl_purple.h index 5e1d376ee1..ad3092eaea 100644 --- a/libpurple/plugins/tcl/tcl_purple.h +++ b/libpurple/plugins/tcl/tcl_purple.h @@ -47,7 +47,7 @@ struct tcl_signal_handler { }; struct tcl_cmd_handler { - int id; + PurpleCmdId id; Tcl_Obj *cmd; Tcl_Interp *interp; diff --git a/libpurple/plugins/tcl/tcl_ref.c b/libpurple/plugins/tcl/tcl_ref.c index 6189750b9f..e51650cd21 100644 --- a/libpurple/plugins/tcl/tcl_ref.c +++ b/libpurple/plugins/tcl/tcl_ref.c @@ -117,12 +117,12 @@ static int purple_tcl_ref_set(Tcl_Interp *interp, Tcl_Obj *obj) PurpleStringref *type; void *value; static const char prefix[] = "purple-"; - static const int prefixlen = sizeof(prefix) - 1; + static const gsize prefixlen = sizeof(prefix) - 1; if (strlen(bytes) < prefixlen || strncmp(bytes, prefix, prefixlen) || (ptr = strchr(bytes, ':')) == NULL - || (ptr - bytes) == prefixlen) + || (gsize)(ptr - bytes) == prefixlen) goto badobject; /* Bad Ethan */ diff --git a/libpurple/protocols/gg/account.h b/libpurple/protocols/gg/account.h index d5fee8d826..4a0bf04521 100644 --- a/libpurple/protocols/gg/account.h +++ b/libpurple/protocols/gg/account.h @@ -37,7 +37,7 @@ typedef struct gchar *id; gpointer data; size_t size; - int length; + guint length; } ggp_account_token; /** diff --git a/libpurple/protocols/gg/libgadu-events.c b/libpurple/protocols/gg/libgadu-events.c index f697f90c05..d29d3c8ef6 100644 --- a/libpurple/protocols/gg/libgadu-events.c +++ b/libpurple/protocols/gg/libgadu-events.c @@ -35,7 +35,7 @@ void ggp_events_user_data(PurpleConnection *gc, struct gg_event_user_data *data) { - int user_idx; + guint user_idx; gboolean is_update; purple_debug_info("gg", "GG_EVENT_USER_DATA [type=%d, user_count=%" @@ -54,7 +54,7 @@ void ggp_events_user_data(PurpleConnection *gc, struct gg_event_user_data *data) struct gg_event_user_data_user *data_user = &data->users[user_idx]; uin_t uin = data_user->uin; - int attr_idx; + guint attr_idx; gboolean got_avatar = FALSE; for (attr_idx = 0; attr_idx < data_user->attr_count; attr_idx++) { diff --git a/libpurple/protocols/gg/pubdir-prpl.c b/libpurple/protocols/gg/pubdir-prpl.c index 1fe8792556..35ecf4b6a6 100644 --- a/libpurple/protocols/gg/pubdir-prpl.c +++ b/libpurple/protocols/gg/pubdir-prpl.c @@ -150,7 +150,7 @@ static const gchar *ggp_pubdir_provinces[] = "zachodniopomorskie", }; -static int ggp_pubdir_provinces_count = sizeof(ggp_pubdir_provinces)/sizeof(gchar*); +static gsize ggp_pubdir_provinces_count = sizeof(ggp_pubdir_provinces)/sizeof(gchar*); /******************************************************************************/ @@ -812,7 +812,8 @@ static void ggp_pubdir_set_info_dialog(PurpleConnection *gc, int records_count, PurpleRequestFields *fields; PurpleRequestFieldGroup *group; PurpleRequestField *field; - int default_gender, i; + int default_gender; + gsize i; const ggp_pubdir_record *record; purple_debug_info("gg", "ggp_pubdir_set_info_dialog (record: %d)\n", diff --git a/libpurple/protocols/gg/utils.c b/libpurple/protocols/gg/utils.c index 71aefa8b4c..ba3575aee9 100644 --- a/libpurple/protocols/gg/utils.c +++ b/libpurple/protocols/gg/utils.c @@ -114,7 +114,7 @@ guint64 ggp_microtime(void) gchar * ggp_utf8_strndup(const gchar *str, gsize n) { - int raw_len = strlen(str); + size_t raw_len = strlen(str); gchar *end_ptr; if (str == NULL) return NULL; @@ -206,7 +206,7 @@ const gchar * ggp_ipv4_to_str(uint32_t raw_ip) return buff; } -GList * ggp_list_truncate(GList *list, gint length, GDestroyNotify free_func) +GList * ggp_list_truncate(GList *list, guint length, GDestroyNotify free_func) { while (g_list_length(list) > length) { diff --git a/libpurple/protocols/gg/utils.h b/libpurple/protocols/gg/utils.h index e6bd466379..80d2d9da51 100644 --- a/libpurple/protocols/gg/utils.h +++ b/libpurple/protocols/gg/utils.h @@ -87,7 +87,7 @@ gchar * ggp_strjoin_list(const gchar *separator, GList *list); const gchar * ggp_ipv4_to_str(uint32_t raw_ip); -GList * ggp_list_truncate(GList *list, gint length, GDestroyNotify free_func); +GList * ggp_list_truncate(GList *list, guint length, GDestroyNotify free_func); gchar * ggp_free_if_equal(gchar *str, const gchar *pattern); diff --git a/libpurple/protocols/irc/parse.c b/libpurple/protocols/irc/parse.c index 043fbeec12..5fb5980f24 100644 --- a/libpurple/protocols/irc/parse.c +++ b/libpurple/protocols/irc/parse.c @@ -384,7 +384,7 @@ char *irc_mirc2html(const char *string) do { end = strpbrk(cur, "\002\003\007\017\026\037"); - decoded = g_string_append_len(decoded, cur, end ? end - cur : strlen(cur)); + decoded = g_string_append_len(decoded, cur, (end ? (goffset)(end - cur) : strlen(cur))); cur = end ? end : cur + strlen(cur); switch (*cur) { diff --git a/libpurple/protocols/jabber/auth_scram.c b/libpurple/protocols/jabber/auth_scram.c index 5b4d2fc9c2..5fe6bf9539 100644 --- a/libpurple/protocols/jabber/auth_scram.c +++ b/libpurple/protocols/jabber/auth_scram.c @@ -34,7 +34,7 @@ static const JabberScramHash hashes[] = { static const JabberScramHash *mech_to_hash(const char *mech) { - int i; + gsize i; g_return_val_if_fail(mech != NULL && *mech != '\0', NULL); diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c index cac1466bbd..85ee7984d2 100644 --- a/libpurple/protocols/jabber/jabber.c +++ b/libpurple/protocols/jabber/jabber.c @@ -580,7 +580,7 @@ int jabber_prpl_send_raw(PurpleConnection *gc, const char *buf, int len) */ jabber_send_raw(js, buf, len); - return (len < 0 ? strlen(buf) : len); + return (len < 0 ? (int)strlen(buf) : len); } void jabber_send_signal_cb(PurpleConnection *pc, xmlnode **packet, diff --git a/libpurple/protocols/jabber/jutil.c b/libpurple/protocols/jabber/jutil.c index ba3e1c757c..b02e220197 100644 --- a/libpurple/protocols/jabber/jutil.c +++ b/libpurple/protocols/jabber/jutil.c @@ -673,7 +673,7 @@ static const struct { const char * jabber_buddy_state_get_name(const JabberBuddyState state) { - int i; + gsize i; for (i = 0; i < G_N_ELEMENTS(jabber_statuses); ++i) if (jabber_statuses[i].state == state) return _(jabber_statuses[i].readable); @@ -684,7 +684,7 @@ jabber_buddy_state_get_name(const JabberBuddyState state) JabberBuddyState jabber_buddy_status_id_get_state(const char *id) { - int i; + gsize i; if (!id) return JABBER_BUDDY_STATE_UNKNOWN; @@ -697,7 +697,7 @@ jabber_buddy_status_id_get_state(const char *id) JabberBuddyState jabber_buddy_show_get_state(const char *id) { - int i; + gsize i; g_return_val_if_fail(id != NULL, JABBER_BUDDY_STATE_UNKNOWN); @@ -713,7 +713,7 @@ JabberBuddyState jabber_buddy_show_get_state(const char *id) const char * jabber_buddy_state_get_show(JabberBuddyState state) { - int i; + gsize i; for (i = 0; i < G_N_ELEMENTS(jabber_statuses); ++i) if (state == jabber_statuses[i].state) return jabber_statuses[i].show; @@ -724,7 +724,7 @@ jabber_buddy_state_get_show(JabberBuddyState state) const char * jabber_buddy_state_get_status_id(JabberBuddyState state) { - int i; + gsize i; for (i = 0; i < G_N_ELEMENTS(jabber_statuses); ++i) if (state == jabber_statuses[i].state) return jabber_statuses[i].status_id; diff --git a/libpurple/protocols/jabber/presence.c b/libpurple/protocols/jabber/presence.c index 23cd3adef3..4421514a5b 100644 --- a/libpurple/protocols/jabber/presence.c +++ b/libpurple/protocols/jabber/presence.c @@ -63,7 +63,7 @@ static const struct { static JabberPresenceType str_to_presence_type(const char *type) { - int i; + gsize i; if (type == NULL) return JABBER_PRESENCE_AVAILABLE; diff --git a/libpurple/protocols/jabber/si.c b/libpurple/protocols/jabber/si.c index a01209955f..f36b28f060 100644 --- a/libpurple/protocols/jabber/si.c +++ b/libpurple/protocols/jabber/si.c @@ -449,7 +449,7 @@ jabber_si_xfer_bytestreams_send_read_again_cb(gpointer data, gint source, close(source); purple_xfer_cancel_remote(xfer); return; - } else if(jsx->rxlen - 5 < jsx->rxqueue[4] + 2) { + } else if(jsx->rxlen - 5 < (size_t)jsx->rxqueue[4] + 2) { /* Upper-bound of 257 (jsx->rxlen = 5, jsx->rxqueue[4] = 0xFF) */ unsigned short to_read = jsx->rxqueue[4] + 2 - (jsx->rxlen - 5); purple_debug_info("jabber", "reading %u bytes for DST.ADDR + port num (trying to read %hu now)\n", @@ -468,7 +468,7 @@ jabber_si_xfer_bytestreams_send_read_again_cb(gpointer data, gint source, } /* Have we not read all of DST.ADDR and the following 2-byte port number? */ - if(jsx->rxlen - 5 < jsx->rxqueue[4] + 2) + if(jsx->rxlen - 5 < (size_t)jsx->rxqueue[4] + 2) return; purple_input_remove(purple_xfer_get_watcher(xfer)); @@ -588,7 +588,7 @@ jabber_si_xfer_bytestreams_send_read_cb(gpointer data, gint source, memcpy(jsx->rxqueue + jsx->rxlen, buffer, len); jsx->rxlen += len; return; - } else if(jsx->rxlen - 2 < jsx->rxqueue[1]) { + } else if(jsx->rxlen - 2 < (size_t)jsx->rxqueue[1]) { /* Has a maximum value of 255 (jsx->rxlen = 2, jsx->rxqueue[1] = 0xFF) */ unsigned short to_read = jsx->rxqueue[1] - (jsx->rxlen - 2); purple_debug_info("jabber", "reading %u bytes for auth methods (trying to read %hu now)\n", @@ -606,7 +606,7 @@ jabber_si_xfer_bytestreams_send_read_cb(gpointer data, gint source, } /* Have we not read all the auth. method bytes? */ - if(jsx->rxlen -2 < jsx->rxqueue[1]) + if(jsx->rxlen -2 < (size_t)jsx->rxqueue[1]) return; purple_debug_info("jabber", "checking to make sure we're socks FIVE\n"); diff --git a/libpurple/protocols/msn/command.c b/libpurple/protocols/msn/command.c index 36f7c3005f..0be77b4630 100644 --- a/libpurple/protocols/msn/command.c +++ b/libpurple/protocols/msn/command.c @@ -57,7 +57,7 @@ msn_command_from_string(const char *string) if (cmd->params != NULL) { - int c; + guint c; for (c = 0; cmd->params[c] && cmd->params[c][0]; c++); cmd->param_count = c; diff --git a/libpurple/protocols/msn/command.h b/libpurple/protocols/msn/command.h index 481a807883..d5d2d3a75d 100644 --- a/libpurple/protocols/msn/command.h +++ b/libpurple/protocols/msn/command.h @@ -41,7 +41,7 @@ struct _MsnCommand char *command; char **params; - int param_count; + guint param_count; guint ref_count; diff --git a/libpurple/protocols/msn/directconn.c b/libpurple/protocols/msn/directconn.c index 2da4178fff..f68e973f06 100644 --- a/libpurple/protocols/msn/directconn.c +++ b/libpurple/protocols/msn/directconn.c @@ -406,7 +406,7 @@ msn_dc_send_cb(gpointer data, gint fd, PurpleInputCondition cond) dc->progress = TRUE; dc->msg_pos += bytes_sent; - if (dc->msg_pos == p->length) { + if ((guint32)dc->msg_pos == p->length) { if (p->sent_cb != NULL) p->sent_cb(p); @@ -671,7 +671,7 @@ msn_dc_recv_cb(gpointer data, gint fd, PurpleInputCondition cond) } /* Wait for the whole packet to arrive */ - if (dc->in_pos < 4 + packet_length) + if ((guint32)dc->in_pos < 4 + packet_length) return; switch (msn_dc_process_packet(dc, packet_length)) { @@ -685,7 +685,7 @@ msn_dc_recv_cb(gpointer data, gint fd, PurpleInputCondition cond) } - if (dc->in_pos > packet_length + 4) { + if ((guint32)dc->in_pos > packet_length + 4) { g_memmove(dc->in_buffer, dc->in_buffer + 4 + packet_length, dc->in_pos - packet_length - 4); } diff --git a/libpurple/protocols/msn/history.c b/libpurple/protocols/msn/history.c index 82488ce102..2b23af5ba1 100644 --- a/libpurple/protocols/msn/history.c +++ b/libpurple/protocols/msn/history.c @@ -68,7 +68,7 @@ void msn_history_add(MsnHistory *history, MsnTransaction *trans) { GQueue *queue; - int max_elems; + gsize max_elems; g_return_if_fail(history != NULL); g_return_if_fail(trans != NULL); diff --git a/libpurple/protocols/msn/nexus.c b/libpurple/protocols/msn/nexus.c index 5a8aafc43d..576fbf6c14 100644 --- a/libpurple/protocols/msn/nexus.c +++ b/libpurple/protocols/msn/nexus.c @@ -56,7 +56,7 @@ MsnNexus * msn_nexus_new(MsnSession *session) { MsnNexus *nexus; - int i; + gsize i; nexus = g_new0(MsnNexus, 1); nexus->session = session; @@ -74,7 +74,7 @@ msn_nexus_new(MsnSession *session) void msn_nexus_destroy(MsnNexus *nexus) { - int i; + gsize i; for (i = 0; i < nexus->token_len; i++) { g_hash_table_destroy(nexus->tokens[i].token); g_free(nexus->tokens[i].secret); @@ -262,7 +262,7 @@ nexus_parse_token(MsnNexus *nexus, int id, xmlnode *node) return FALSE; id = atol(id_str + 7) - 1; /* 'Compact#' or 'PPToken#' */ - if (id >= nexus->token_len) + if (id < 0 || (gsize)id >= nexus->token_len) return FALSE; /* Where did this come from? */ } @@ -374,7 +374,7 @@ msn_nexus_connect(MsnNexus *nexus) char *password_xml; GString *domains; char *request; - int i; + gsize i; purple_debug_info("msn", "Starting Windows Live ID authentication\n"); msn_session_set_login_step(session, MSN_LOGIN_STEP_GET_COOKIE); diff --git a/libpurple/protocols/msn/nexus.h b/libpurple/protocols/msn/nexus.h index d824b8f624..f6150780e9 100644 --- a/libpurple/protocols/msn/nexus.h +++ b/libpurple/protocols/msn/nexus.h @@ -206,7 +206,7 @@ struct _MsnNexus char *cipher; char *secret; MsnTicketToken *tokens; - int token_len; + gsize token_len; }; void msn_nexus_connect(MsnNexus *nexus); diff --git a/libpurple/protocols/msn/notification.c b/libpurple/protocols/msn/notification.c index 20e9f83d4a..969e6af088 100644 --- a/libpurple/protocols/msn/notification.c +++ b/libpurple/protocols/msn/notification.c @@ -240,7 +240,7 @@ ver_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) MsnTransaction *trans; PurpleAccount *account; gboolean protocol_supported = FALSE; - int proto_ver; + guint proto_ver; size_t i; session = cmdproc->session; @@ -249,7 +249,7 @@ ver_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) session->protocol_ver = 0; for (i = 1; i < cmd->param_count; i++) { - if (sscanf(cmd->params[i], "MSNP%d", &proto_ver) == 1) { + if (sscanf(cmd->params[i], "MSNP%u", &proto_ver) == 1) { if (proto_ver >= WLM_MIN_PROTOCOL && proto_ver <= WLM_MAX_PROTOCOL && proto_ver > session->protocol_ver) { diff --git a/libpurple/protocols/msn/p2p.c b/libpurple/protocols/msn/p2p.c index 9b028e27bd..4d6649181e 100644 --- a/libpurple/protocols/msn/p2p.c +++ b/libpurple/protocols/msn/p2p.c @@ -133,7 +133,9 @@ msn_p2p_header_from_wire(MsnP2PInfo *info, const char *wire, size_t max_len) header->opcode = msn_pop8(wire); header->message_len = msn_pop16be(wire); header->base_id = msn_pop32be(wire); - if (header->header_len + header->message_len + P2P_PACKET_FOOTER_SIZE > max_len) { + if ((gsize)header->header_len + header->message_len + + P2P_PACKET_FOOTER_SIZE > max_len) + { /* Invalid header and data length */ len = 0; break; diff --git a/libpurple/protocols/msn/servconn.c b/libpurple/protocols/msn/servconn.c index 3fd625ba6c..8a2eb3e463 100644 --- a/libpurple/protocols/msn/servconn.c +++ b/libpurple/protocols/msn/servconn.c @@ -386,7 +386,7 @@ msn_servconn_write(MsnServConn *servconn, const char *buf, size_t len) if (ret < 0 && errno == EAGAIN) ret = 0; - if (ret >= 0 && ret < len) { + if (ret >= 0 && (size_t)ret < len) { if (servconn->tx_handler == 0) servconn->tx_handler = purple_input_add( servconn->fd, PURPLE_INPUT_WRITE, @@ -461,9 +461,12 @@ MsnServConn *msn_servconn_process_data(MsnServConn *servconn) if (servconn->payload_len) { - if (servconn->payload_len > servconn->rx_len) + if (servconn->rx_len < 0 || servconn->payload_len > + (gsize)servconn->rx_len) + { /* The payload is still not complete. */ break; + } cur_len = servconn->payload_len; end += cur_len; diff --git a/libpurple/protocols/msn/slplink.c b/libpurple/protocols/msn/slplink.c index d01a6989ec..436bb0d5e1 100644 --- a/libpurple/protocols/msn/slplink.c +++ b/libpurple/protocols/msn/slplink.c @@ -289,7 +289,7 @@ msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) { MsnSlpMessagePart *part; MsnP2PInfo *info; - long long real_size; + gsize real_size; size_t len = 0; guint64 offset; @@ -422,7 +422,7 @@ msn_slplink_send_ack(MsnSlpLink *slplink, MsnP2PInfo *info) } static MsnSlpMessage * -msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id) +msn_slplink_message_find(MsnSlpLink *slplink, guint32 session_id, long id) { GList *e; diff --git a/libpurple/protocols/msn/slpmsg.h b/libpurple/protocols/msn/slpmsg.h index fb045e7c3a..4fa3b85bc7 100644 --- a/libpurple/protocols/msn/slpmsg.h +++ b/libpurple/protocols/msn/slpmsg.h @@ -57,7 +57,7 @@ struct _MsnSlpMessage * This is the size of buffer, unless this is an outgoing file transfer, * in which case this is the size of the file. */ - long long size; + gsize size; GList *parts; /**< A list with the SlpMsgParts */ diff --git a/libpurple/protocols/msn/slpmsg_part.c b/libpurple/protocols/msn/slpmsg_part.c index dfff1f5c24..add959a73a 100644 --- a/libpurple/protocols/msn/slpmsg_part.c +++ b/libpurple/protocols/msn/slpmsg_part.c @@ -172,7 +172,7 @@ msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data) { MsnSlpMessage *slpmsg; guint64 offset; - long long real_size; + gsize real_size; slpmsg = data; diff --git a/libpurple/protocols/msn/tlv.c b/libpurple/protocols/msn/tlv.c index 48400f35ac..ed505305ed 100644 --- a/libpurple/protocols/msn/tlv.c +++ b/libpurple/protocols/msn/tlv.c @@ -339,7 +339,7 @@ msn_tlvlist_write(GSList *list, size_t *out_len) for (; list; list = g_slist_next(list)) { msn_tlv_t *tlv = (msn_tlv_t *)list->data; - if (G_UNLIKELY(tlv->length + 2 > bytes_left)) { + if (G_UNLIKELY((gsize)tlv->length + 2 > bytes_left)) { buf = g_realloc(buf, total_len + 256); bytes_left += 256; total_len += 256; diff --git a/libpurple/protocols/msn/transaction.c b/libpurple/protocols/msn/transaction.c index e77b13553b..57f3464553 100644 --- a/libpurple/protocols/msn/transaction.c +++ b/libpurple/protocols/msn/transaction.c @@ -158,7 +158,7 @@ msn_transaction_unqueue(MsnTransaction *trans, MsnCmdProc *cmdproc) void msn_transaction_set_payload(MsnTransaction *trans, - const char *payload, int payload_len) + const char *payload, gsize payload_len) { g_return_if_fail(trans != NULL); g_return_if_fail(payload != NULL); diff --git a/libpurple/protocols/msn/transaction.h b/libpurple/protocols/msn/transaction.h index 7d4764145e..10fe8fc0c3 100644 --- a/libpurple/protocols/msn/transaction.h +++ b/libpurple/protocols/msn/transaction.h @@ -75,7 +75,7 @@ char *msn_transaction_to_string(MsnTransaction *trans); void msn_transaction_queue_cmd(MsnTransaction *trans, MsnCommand *cmd); void msn_transaction_unqueue_cmd(MsnTransaction *trans, MsnCmdProc *cmdproc); void msn_transaction_set_payload(MsnTransaction *trans, - const char *payload, int payload_len); + const char *payload, gsize payload_len); void msn_transaction_set_data(MsnTransaction *trans, void *data); void msn_transaction_set_data_free(MsnTransaction *trans, GDestroyNotify fn); void msn_transaction_set_saveable(MsnTransaction *trans, gboolean saveable); diff --git a/libpurple/protocols/myspace/myspace.c b/libpurple/protocols/myspace/myspace.c index f4c82a898d..8ac44c247a 100644 --- a/libpurple/protocols/myspace/myspace.c +++ b/libpurple/protocols/myspace/myspace.c @@ -1035,7 +1035,7 @@ msim_add_contact_from_server_cb(MsimSession *session, const MsimMessage *user_lo /* TODO: use 'Position' in contact_info to take into account where buddy is */ purple_blist_add_buddy(buddy, NULL, group, NULL /* insertion point */); - if (strtol(username, NULL, 10) == uid) { + if (strtoul(username, NULL, 10) == uid) { /* * This user has not set their username! Set their server * alias to their display name so that we don't see a bunch @@ -2979,13 +2979,15 @@ gboolean msim_send_raw(MsimSession *session, const gchar *msg) { size_t len; + int sent; g_return_val_if_fail(msg != NULL, FALSE); purple_debug_info("msim", "msim_send_raw: writing <%s>\n", msg); len = strlen(msg); - return msim_send_really_raw(session->gc, msg, len) == len; + sent = msim_send_really_raw(session->gc, msg, len); + return sent > 0 && (size_t)sent == len; } static GHashTable * @@ -3470,7 +3472,7 @@ msim_uri_handler(const gchar *proto, const gchar *cmd, GHashTable *params) l = purple_accounts_get_all(); while (l) { if (purple_account_is_connected(l->data) && - (uid == 0 || purple_account_get_int(l->data, "uid", 0) == uid)) { + (uid == 0 || (guint)purple_account_get_int(l->data, "uid", 0) == uid)) { account = l->data; break; } diff --git a/libpurple/protocols/myspace/persist.h b/libpurple/protocols/myspace/persist.h index 09712c9143..1f59685f7f 100644 --- a/libpurple/protocols/myspace/persist.h +++ b/libpurple/protocols/myspace/persist.h @@ -42,8 +42,8 @@ /** Define a set of _DSN and _LID constants for a persistance request. */ #define MSIM_PERSIST_DSN_LID(name,dsn,lid) \ - static const int name##_DSN = dsn; \ - static const int name##_LID = lid; + static const guint name##_DSN = dsn; \ + static const guint name##_LID = lid; /* Can't do this, errors: * persist.h:51:3: error: '#' is not followed by a macro parameter diff --git a/libpurple/protocols/myspace/user.c b/libpurple/protocols/myspace/user.c index 37acd895df..a0775a1af1 100644 --- a/libpurple/protocols/myspace/user.c +++ b/libpurple/protocols/myspace/user.c @@ -628,8 +628,8 @@ static void msim_username_is_set_cb(MsimSession *session, const MsimMessage *use const gchar *errmsg; MsimMessage *body; - guint rid; - gint cmd,dsn,lid,code; + guint rid, dsn, lid; + gint cmd, code; /* \persistr\\cmd\258\dsn\9\uid\204084363\lid\14\rid\369\body\UserName=TheAlbinoRhino1.Code=0\final\ */ purple_debug_info("msim","username_is_set made\n"); @@ -656,7 +656,7 @@ static void msim_username_is_set_cb(MsimSession *session, const MsimMessage *use msim_msg_free(body); purple_debug_info("msim_username_is_set_cb", - "cmd = %d, dsn = %d, lid = %d, code = %d, username = %s\n", + "cmd = %d, dsn = %u, lid = %u, code = %d, username = %s\n", cmd, dsn, lid, code, username); if (cmd == (MSIM_CMD_BIT_REPLY | MSIM_CMD_PUT) diff --git a/libpurple/protocols/novell/nmrtf.c b/libpurple/protocols/novell/nmrtf.c index f7d858bf97..0a0caf48b3 100644 --- a/libpurple/protocols/novell/nmrtf.c +++ b/libpurple/protocols/novell/nmrtf.c @@ -507,7 +507,7 @@ rtf_parse_keyword(NMRtfContext *ctx) int param = 0; char keyword[30]; char parameter[20]; - int i; + gsize i; keyword[0] = '\0'; parameter[0] = '\0'; diff --git a/libpurple/protocols/oscar/bstream.c b/libpurple/protocols/oscar/bstream.c index 31acac2724..7023fe7cd2 100644 --- a/libpurple/protocols/oscar/bstream.c +++ b/libpurple/protocols/oscar/bstream.c @@ -49,8 +49,11 @@ void byte_stream_destroy(ByteStream *bs) g_free(bs->data); } -int byte_stream_bytes_left(ByteStream *bs) +size_t byte_stream_bytes_left(ByteStream *bs) { + g_return_val_if_fail(bs != NULL, 0); + g_return_val_if_fail(bs->len < bs->offset, 0); + return bs->len - bs->offset; } @@ -79,7 +82,7 @@ void byte_stream_rewind(ByteStream *bs) int byte_stream_advance(ByteStream *bs, int n) { g_return_val_if_fail(byte_stream_curpos(bs) + n >= 0, 0); - g_return_val_if_fail(n <= byte_stream_bytes_left(bs), 0); + g_return_val_if_fail((gsize)n <= byte_stream_bytes_left(bs), 0); bs->offset += n; return n; diff --git a/libpurple/protocols/oscar/family_feedbag.c b/libpurple/protocols/oscar/family_feedbag.c index 4332c9c43c..e0786e50fa 100644 --- a/libpurple/protocols/oscar/family_feedbag.c +++ b/libpurple/protocols/oscar/family_feedbag.c @@ -107,7 +107,7 @@ aim_ssi_type_to_string(guint16 type) { 0x0020, "ICQ-MDir" }, { 0x0029, "Facebook" }, }; - int i; + size_t i; for (i = 0; i < G_N_ELEMENTS(type_strings); i++) { if (type_strings[i].type == type) { return type_strings[i].string; diff --git a/libpurple/protocols/oscar/oscar.c b/libpurple/protocols/oscar/oscar.c index f80e975f66..9a8ecda387 100644 --- a/libpurple/protocols/oscar/oscar.c +++ b/libpurple/protocols/oscar/oscar.c @@ -893,7 +893,7 @@ purple_parse_auth_resp(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) PurpleConnection *gc = od->gc; PurpleAccount *account = purple_connection_get_account(gc); char *host; int port; - int i; + gsize i; FlapConnection *newconn; va_list ap; struct aim_authresp_info *info; diff --git a/libpurple/protocols/oscar/oscar.h b/libpurple/protocols/oscar/oscar.h index 9ca180b747..7da1d44b16 100644 --- a/libpurple/protocols/oscar/oscar.h +++ b/libpurple/protocols/oscar/oscar.h @@ -603,8 +603,8 @@ struct chat_connection int id; PurpleConnection *gc; PurpleConversation *conv; - int maxlen; - int maxvis; + guint16 maxlen; + guint16 maxvis; }; /* @@ -1073,7 +1073,7 @@ GSList *aim_tlvlist_readlen(ByteStream *bs, guint16 len); GSList *aim_tlvlist_copy(GSList *orig); int aim_tlvlist_count(GSList *list); -int aim_tlvlist_size(GSList *list); +size_t aim_tlvlist_size(GSList *list); int aim_tlvlist_cmp(GSList *one, GSList *two); int aim_tlvlist_write(ByteStream *bs, GSList **list); void aim_tlvlist_free(GSList *list); @@ -1215,7 +1215,7 @@ void aim_genericreq_l(OscarData *od, FlapConnection *conn, guint16 family, guint int byte_stream_new(ByteStream *bs, size_t len); int byte_stream_init(ByteStream *bs, guint8 *data, size_t len); void byte_stream_destroy(ByteStream *bs); -int byte_stream_bytes_left(ByteStream *bs); +size_t byte_stream_bytes_left(ByteStream *bs); int byte_stream_curpos(ByteStream *bs); int byte_stream_setpos(ByteStream *bs, size_t off); void byte_stream_rewind(ByteStream *bs); diff --git a/libpurple/protocols/oscar/tlv.c b/libpurple/protocols/oscar/tlv.c index c732e7554c..8383d18481 100644 --- a/libpurple/protocols/oscar/tlv.c +++ b/libpurple/protocols/oscar/tlv.c @@ -267,10 +267,10 @@ int aim_tlvlist_count(GSList *list) * @return The number of bytes that would be needed to * write the passed TLV chain to a data buffer. */ -int aim_tlvlist_size(GSList *list) +size_t aim_tlvlist_size(GSList *list) { GSList *cur; - int size; + size_t size; if (list == NULL) return 0; @@ -658,7 +658,7 @@ void aim_tlvlist_remove(GSList **list, const guint16 type) */ int aim_tlvlist_write(ByteStream *bs, GSList **list) { - int goodbuflen; + size_t goodbuflen; GSList *cur; aim_tlv_t *tlv; diff --git a/libpurple/protocols/oscar/util.c b/libpurple/protocols/oscar/util.c index 1fa176e382..abdad3546d 100644 --- a/libpurple/protocols/oscar/util.c +++ b/libpurple/protocols/oscar/util.c @@ -62,7 +62,7 @@ static const char * const msgerrreason[] = { N_("Queue full"), N_("Not while on AOL") }; -static const int msgerrreasonlen = G_N_ELEMENTS(msgerrreason); +static const gsize msgerrreasonlen = G_N_ELEMENTS(msgerrreason); const char *oscar_get_msgerr_reason(size_t reason) { diff --git a/libpurple/protocols/silc/buddy.c b/libpurple/protocols/silc/buddy.c index b9facf55bc..ad9dc050c2 100644 --- a/libpurple/protocols/silc/buddy.c +++ b/libpurple/protocols/silc/buddy.c @@ -750,7 +750,7 @@ silcpurple_add_buddy_save(SilcBool success, void *context) char filename[512], filename2[512], *fingerprint = NULL, *tmp; SilcUInt32 len; SilcHash hash; - int i; + gsize i; if (!success) { /* The user did not trust the public key. */ diff --git a/libpurple/protocols/silc/chat.c b/libpurple/protocols/silc/chat.c index 623aff7f49..764f0fcf7f 100644 --- a/libpurple/protocols/silc/chat.c +++ b/libpurple/protocols/silc/chat.c @@ -680,14 +680,14 @@ static void silcpurple_chat_ulimit_cb(SilcPurpleChatInput s, const char *limit) { SilcChannelEntry channel; - int ulimit = 0; + guint ulimit = 0; channel = silc_client_get_channel(s->sg->client, s->sg->conn, (char *)s->channel); if (!channel) return; if (limit) - ulimit = atoi(limit); + ulimit = strtoul(limit, NULL, 10); if (!limit || !(*limit) || *limit == '0') { if (limit && ulimit == channel->user_limit) { @@ -1120,7 +1120,7 @@ void silcpurple_chat_invite(PurpleConnection *gc, int id, const char *msg, SilcPurplePrvgrp prv; for (l = sg->grps; l; l = l->next) - if (((SilcPurplePrvgrp)l->data)->id == id) + if (((SilcPurplePrvgrp)l->data)->id == (gulong)id) break; if (!l) return; @@ -1131,7 +1131,7 @@ void silcpurple_chat_invite(PurpleConnection *gc, int id, const char *msg, /* Find channel by id */ silc_hash_table_list(conn->local_entry->channels, &htl); while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { - if (SILC_PTR_TO_32(chu->channel->context) == id ) { + if (SILC_PTR_TO_32(chu->channel->context) == (gulong)id ) { found = TRUE; break; } @@ -1165,7 +1165,7 @@ void silcpurple_chat_leave(PurpleConnection *gc, int id) SilcChannelEntry channel; for (l = sg->grps; l; l = l->next) - if (((SilcPurplePrvgrp)l->data)->id == id) + if (((SilcPurplePrvgrp)l->data)->id == (gulong)id) break; if (!l) return; @@ -1185,7 +1185,7 @@ void silcpurple_chat_leave(PurpleConnection *gc, int id) /* Find channel by id */ silc_hash_table_list(conn->local_entry->channels, &htl); while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { - if (SILC_PTR_TO_32(chu->channel->context) == id ) { + if (SILC_PTR_TO_32(chu->channel->context) == (gulong)id ) { found = TRUE; break; } @@ -1202,7 +1202,7 @@ void silcpurple_chat_leave(PurpleConnection *gc, int id) /* Leave from private groups on this channel as well */ for (l = sg->grps; l; l = l->next) - if (((SilcPurplePrvgrp)l->data)->chid == id) { + if (((SilcPurplePrvgrp)l->data)->chid == (gulong)id) { prv = l->data; silc_client_del_channel_private_key(client, conn, chu->channel, @@ -1266,7 +1266,7 @@ int silcpurple_chat_send(PurpleConnection *gc, int id, const char *msg, SilcPurplePrvgrp prv; for (l = sg->grps; l; l = l->next) - if (((SilcPurplePrvgrp)l->data)->id == id) + if (((SilcPurplePrvgrp)l->data)->id == (gulong)id) break; if (!l) { g_free(tmp); @@ -1286,7 +1286,7 @@ int silcpurple_chat_send(PurpleConnection *gc, int id, const char *msg, /* Find channel by id */ silc_hash_table_list(conn->local_entry->channels, &htl); while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { - if (SILC_PTR_TO_32(chu->channel->context) == id ) { + if (SILC_PTR_TO_32(chu->channel->context) == (gulong)id ) { found = TRUE; break; } @@ -1357,7 +1357,7 @@ void silcpurple_chat_set_topic(PurpleConnection *gc, int id, const char *topic) SilcPurplePrvgrp prv; for (l = sg->grps; l; l = l->next) - if (((SilcPurplePrvgrp)l->data)->id == id) + if (((SilcPurplePrvgrp)l->data)->id == (gulong)id) break; if (!l) return; @@ -1368,7 +1368,7 @@ void silcpurple_chat_set_topic(PurpleConnection *gc, int id, const char *topic) /* Find channel by id */ silc_hash_table_list(conn->local_entry->channels, &htl); while (silc_hash_table_get(&htl, NULL, (void *)&chu)) { - if (SILC_PTR_TO_32(chu->channel->context) == id ) { + if (SILC_PTR_TO_32(chu->channel->context) == (gulong)id ) { found = TRUE; break; } diff --git a/libpurple/protocols/silc/ops.c b/libpurple/protocols/silc/ops.c index f0d14987d6..c1b7337733 100644 --- a/libpurple/protocols/silc/ops.c +++ b/libpurple/protocols/silc/ops.c @@ -456,7 +456,6 @@ silc_notify(SilcClient client, SilcClientConnection conn, SilcNotifyType notify; PurpleBuddy *b; SilcDList list; - int i; va_start(va, type); memset(buf, 0, sizeof(buf)); @@ -852,6 +851,7 @@ silc_notify(SilcClient client, SilcClientConnection conn, if (public_key) { GSList *buddies; const char *f; + gsize i; pk = silc_pkcs_public_key_encode(public_key, &pk_len); if (!pk) diff --git a/libpurple/protocols/silc/pk.c b/libpurple/protocols/silc/pk.c index 306a310638..d3dbc373d3 100644 --- a/libpurple/protocols/silc/pk.c +++ b/libpurple/protocols/silc/pk.c @@ -122,7 +122,7 @@ void silcpurple_verify_public_key(SilcClient client, SilcClientConnection conn, SilcVerifyPublicKey completion, void *context) { PurpleConnection *gc = client->application; - int i; + gsize i; char file[256], filename[256], filename2[256], *ipf, *hostf = NULL; char *fingerprint, *babbleprint; struct passwd *pw; diff --git a/libpurple/protocols/yahoo/libymsg.c b/libpurple/protocols/yahoo/libymsg.c index d4fc646efc..74bc7b97fc 100644 --- a/libpurple/protocols/yahoo/libymsg.c +++ b/libpurple/protocols/yahoo/libymsg.c @@ -2339,11 +2339,13 @@ static void yahoo_process_addbuddy(PurpleConnection *gc, struct yahoo_packet *pk static void yahoo_p2p_write_pkt(gint source, struct yahoo_packet *pkt) { size_t pkt_len; + gssize written; guchar *raw_packet; /*build the raw packet and send it to the host*/ pkt_len = yahoo_packet_build(pkt, 0, 0, 0, &raw_packet); - if(write(source, raw_packet, pkt_len) != pkt_len) + written = write(source, raw_packet, pkt_len); + if (written < 0 || (gsize)written != pkt_len) purple_debug_warning("yahoo","p2p: couldn't write to the source\n"); g_free(raw_packet); } diff --git a/libpurple/protocols/yahoo/libymsg.h b/libpurple/protocols/yahoo/libymsg.h index fce89b3d54..5f1fc9b17a 100644 --- a/libpurple/protocols/yahoo/libymsg.h +++ b/libpurple/protocols/yahoo/libymsg.h @@ -129,7 +129,7 @@ enum yahoo_status { YAHOO_STATUS_WEBLOGIN = 0x5a55aa55, YAHOO_STATUS_OFFLINE = 0x5a55aa56, /* don't ask */ YAHOO_STATUS_TYPING = 0x16, - YAHOO_STATUS_DISCONNECTED = 0xffffffff /* in ymsg 15. doesnt mean the normal sense of 'disconnected' */ + YAHOO_STATUS_DISCONNECTED = -1 /* 0xffffffff; in ymsg 15. doesnt mean the normal sense of 'disconnected' */ }; /* diff --git a/libpurple/protocols/yahoo/util.c b/libpurple/protocols/yahoo/util.c index 23c1b81de4..3790d0149f 100644 --- a/libpurple/protocols/yahoo/util.c +++ b/libpurple/protocols/yahoo/util.c @@ -522,7 +522,7 @@ char *yahoo_codes_to_html(const char *x) size_t x_len; xmlnode *html, *cur; GString *cdata = g_string_new(NULL); - int i, j; + guint i, j; gboolean no_more_gt_brackets = FALSE; const char *match; gchar *xmlstr1, *xmlstr2, *esc; @@ -778,7 +778,7 @@ char *yahoo_html_to_codes(const char *src) GSList *tags = NULL; size_t src_len; - int i, j; + guint i, j; GString *dest; char *esc; gboolean no_more_gt_brackets = FALSE; diff --git a/libpurple/protocols/yahoo/yahoo_packet.c b/libpurple/protocols/yahoo/yahoo_packet.c index a2a4fa0803..605009a681 100644 --- a/libpurple/protocols/yahoo/yahoo_packet.c +++ b/libpurple/protocols/yahoo/yahoo_packet.c @@ -139,7 +139,7 @@ void yahoo_packet_read(struct yahoo_packet *pkt, const guchar *data, int len) char key[64]; const guchar *delimiter; gboolean accept; - int x; + guint x; struct yahoo_pair *pair; while (pos + 1 < len) @@ -370,7 +370,7 @@ int yahoo_packet_send(struct yahoo_packet *pkt, YahooData *yd) return ret; } - if (ret < len) { + if ((gsize)ret < len) { if (yd->txhandler == 0) yd->txhandler = purple_input_add(yd->fd, PURPLE_INPUT_WRITE, yahoo_packet_send_can_write, yd); diff --git a/libpurple/protocols/yahoo/yahoo_packet.h b/libpurple/protocols/yahoo/yahoo_packet.h index f214351b26..6fdbd3438b 100644 --- a/libpurple/protocols/yahoo/yahoo_packet.h +++ b/libpurple/protocols/yahoo/yahoo_packet.h @@ -121,7 +121,7 @@ struct yahoo_pair { struct yahoo_packet { guint16 service; - guint32 status; + gint32 status; guint32 id; GSList *hash; }; diff --git a/libpurple/protocols/yahoo/ycht.c b/libpurple/protocols/yahoo/ycht.c index 22f3142116..c6dc7b80cd 100644 --- a/libpurple/protocols/yahoo/ycht.c +++ b/libpurple/protocols/yahoo/ycht.c @@ -490,7 +490,7 @@ static void ycht_pending(gpointer data, gint source, PurpleInputCondition cond) while (1) { YchtPkt *pkt; int pos = 0; - int pktlen; + guint pktlen; guint service; guint version; gint status; diff --git a/libpurple/protocols/zephyr/ZReadAscii.c b/libpurple/protocols/zephyr/ZReadAscii.c index 879ddb3c5f..bef0bc3db5 100644 --- a/libpurple/protocols/zephyr/ZReadAscii.c +++ b/libpurple/protocols/zephyr/ZReadAscii.c @@ -10,7 +10,7 @@ #include "internal.h" -#define Z_cnvt_xtoi(c) ((temp=(c)-'0'),(temp<10)?temp:((temp-='A'-'9'-1),(temp<16)?temp:-1)) +#define Z_cnvt_xtoi(c) ((temp=(c)-'0'),(temp<10)?(int)temp:((temp-='A'-'9'-1),(temp<16)?(int)temp:-1)) Code_t ZReadAscii(ptr, len, field, num) char *ptr; diff --git a/libpurple/protocols/zephyr/ZVariables.c b/libpurple/protocols/zephyr/ZVariables.c index d651f152b4..138f73542d 100644 --- a/libpurple/protocols/zephyr/ZVariables.c +++ b/libpurple/protocols/zephyr/ZVariables.c @@ -206,7 +206,7 @@ static int varline(bfr, var) #define max(a,b) ((a > b) ? (a) : (b)) #endif - if (g_ascii_strncasecmp(bfr, var, max(strlen(var), cp - bfr))) + if (g_ascii_strncasecmp(bfr, var, max(strlen(var), (gsize)(cp - bfr)))) return(0); /* var is not the var in bfr ==> no match */ diff --git a/libpurple/protocols/zephyr/Zinternal.c b/libpurple/protocols/zephyr/Zinternal.c index 6075eb420f..9c5a06b441 100644 --- a/libpurple/protocols/zephyr/Zinternal.c +++ b/libpurple/protocols/zephyr/Zinternal.c @@ -206,7 +206,7 @@ static struct _Z_InputQ *Z_SearchQueue(ZUnique_Id_t *uid, ZNotice_Kind_t kind) if (ZCompareUID(uid, &qptr->uid) && qptr->kind == kind) return (qptr); next = qptr->next; - if (qptr->timep && (qptr->timep+Z_NOTICETIMELIMIT < tv.tv_sec)) + if (qptr->timep && ((time_t)qptr->timep+Z_NOTICETIMELIMIT < tv.tv_sec)) Z_RemQueue(qptr); qptr = next; } @@ -648,7 +648,7 @@ Code_t Z_FormatAuthHeader(notice, buffer, buffer_len, len, cert_routine) Code_t Z_FormatRawHeader(notice, buffer, buffer_len, len, cstart, cend) ZNotice_t *notice; char *buffer; - int buffer_len; + gsize buffer_len; int *len; char **cstart, **cend; { diff --git a/libpurple/protocols/zephyr/internal.h b/libpurple/protocols/zephyr/internal.h index 14c06b1703..0a0648d88a 100644 --- a/libpurple/protocols/zephyr/internal.h +++ b/libpurple/protocols/zephyr/internal.h @@ -105,7 +105,7 @@ void Z_RemQueue __P((struct _Z_InputQ *)); Code_t Z_AddNoticeToEntry __P((struct _Z_InputQ*, ZNotice_t*, int)); Code_t Z_FormatAuthHeader __P((ZNotice_t *, char *, int, int *, Z_AuthProc)); Code_t Z_FormatHeader __P((ZNotice_t *, char *, int, int *, Z_AuthProc)); -Code_t Z_FormatRawHeader __P((ZNotice_t *, char*, int, +Code_t Z_FormatRawHeader __P((ZNotice_t *, char*, gsize, int*, char **, char **)); Code_t Z_ReadEnqueue __P((void)); Code_t Z_ReadWait __P((void)); diff --git a/libpurple/protocols/zephyr/zephyr.c b/libpurple/protocols/zephyr/zephyr.c index 9106df85b1..da304e257f 100644 --- a/libpurple/protocols/zephyr/zephyr.c +++ b/libpurple/protocols/zephyr/zephyr.c @@ -2090,8 +2090,7 @@ static int zephyr_send_im(PurpleConnection * gc, const char *who, const char *im static char* zephyr_tzc_escape_msg(const char *message) { - int pos = 0; - int pos2 = 0; + gsize pos = 0, pos2 = 0; char *newmsg; if (message && *message) { @@ -2122,8 +2121,7 @@ static char* zephyr_tzc_escape_msg(const char *message) char* zephyr_tzc_deescape_str(const char *message) { - int pos = 0; - int pos2 = 0; + gsize pos = 0, pos2 = 0; char *newmsg; if (message && *message) { diff --git a/libpurple/purple-client.c b/libpurple/purple-client.c index 1cada6a6d5..d52428df7a 100644 --- a/libpurple/purple-client.c +++ b/libpurple/purple-client.c @@ -15,7 +15,7 @@ static DBusGProxy *purple_proxy; static GList *garray_int_to_glist(GArray *array) { GList *list = NULL; - int i; + gsize i; for (i = 0; i < array->len; i++) list = g_list_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); @@ -27,7 +27,7 @@ static GList *garray_int_to_glist(GArray *array) static GSList *garray_int_to_gslist(GArray *array) { GSList *list = NULL; - int i; + gsize i; for (i = 0; i < array->len; i++) list = g_slist_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); diff --git a/libpurple/stun.c b/libpurple/stun.c index 2308d80677..176c238d8e 100644 --- a/libpurple/stun.c +++ b/libpurple/stun.c @@ -166,7 +166,7 @@ static void reply_cb(gpointer data, gint source, PurpleInputCondition cond) { struct stun_conn *sc = data; char buffer[65536]; char *tmp; - int len; + gssize len; struct in_addr in; struct stun_attrib *attrib; struct stun_header *hdr; @@ -177,19 +177,19 @@ static void reply_cb(gpointer data, gint source, PurpleInputCondition cond) { memset(&in, 0, sizeof(in)); len = recv(source, buffer, sizeof(buffer) - 1, 0); - if (!len) { + if (len <= 0) { purple_debug_warning("stun", "unable to read stun response\n"); return; } buffer[len] = '\0'; - if (len < sizeof(struct stun_header)) { + if ((gsize)len < sizeof(struct stun_header)) { purple_debug_warning("stun", "got invalid response\n"); return; } hdr = (struct stun_header*) buffer; - if (len != (ntohs(hdr->len) + sizeof(struct stun_header))) { + if ((gsize)len != (ntohs(hdr->len) + sizeof(struct stun_header))) { purple_debug_warning("stun", "got incomplete response\n"); return; } @@ -318,7 +318,7 @@ static void hbn_listen_cb(int fd, gpointer data) { if(sendto(sc->fd, &hdr_data, sizeof(struct stun_header), 0, (struct sockaddr *)&(sc->addr), - sizeof(struct sockaddr_in)) < sizeof(struct stun_header)) { + sizeof(struct sockaddr_in)) < (gssize)sizeof(struct stun_header)) { nattype.status = PURPLE_STUN_STATUS_UNKNOWN; nattype.lookup_time = time(NULL); do_callbacks(); diff --git a/libpurple/upnp.c b/libpurple/upnp.c index f5a0bcfb96..227e7c0867 100644 --- a/libpurple/upnp.c +++ b/libpurple/upnp.c @@ -351,7 +351,7 @@ purple_upnp_parse_description_response(const gchar* httpResponse, gsize len, const char *path, *start = strstr(baseURL, "://"); start = start ? start + 3 : baseURL; path = strchr(start, '/'); - length = path ? path - baseURL : strlen(baseURL); + length = path ? (gsize)(path - baseURL) : strlen(baseURL); controlURL = g_strdup_printf("%.*s%s", (int)length, baseURL, tmp); } else { controlURL = g_strdup_printf("%s%s", baseURL, tmp); @@ -579,10 +579,10 @@ purple_upnp_discover_send_broadcast(UPnPDiscoveryData *dd) totalSize = strlen(sendMessage); do { - if(sendto(dd->fd, sendMessage, totalSize, 0, - (struct sockaddr*) &(dd->server), - sizeof(struct sockaddr_in) - ) == totalSize) { + gssize sent = sendto(dd->fd, sendMessage, totalSize, 0, + (struct sockaddr*) &(dd->server), + sizeof(struct sockaddr_in)); + if(sent >= 0 && (gsize)sent == totalSize) { sentSuccess = TRUE; break; } diff --git a/libpurple/util.c b/libpurple/util.c index 8f4a46b596..1294ec6e78 100644 --- a/libpurple/util.c +++ b/libpurple/util.c @@ -157,7 +157,7 @@ purple_util_uninit(void) gchar * purple_base16_encode(const guchar *data, gsize len) { - int i; + gsize i; gchar *ascii = NULL; g_return_val_if_fail(data != NULL, NULL); @@ -221,7 +221,7 @@ purple_base16_decode(const char *str, gsize *ret_len) gchar * purple_base16_encode_chunked(const guchar *data, gsize len) { - int i; + gsize i; gchar *ascii = NULL; g_return_val_if_fail(data != NULL, NULL); @@ -906,7 +906,7 @@ char * purple_uts35_to_str(const char *format, size_t len, struct tm *tm) { GString *string; - int i, count; + guint i, count; if (tm == NULL) { time_t now = time(NULL); @@ -2390,9 +2390,9 @@ purple_markup_strip_html(const char *str) size_t hrlen = strlen(href); /* Only insert the href if it's different from the CDATA. */ - if ((hrlen != j - href_st || + if ((hrlen != (gsize)(j - href_st) || strncmp(str2 + href_st, href, hrlen)) && - (hrlen != j - href_st + 7 || /* 7 == strlen("http://") */ + (hrlen != (gsize)(j - href_st + 7) || /* 7 == strlen("http://") */ strncmp(str2 + href_st, href + 7, hrlen - 7))) { str2[j++] = ' '; @@ -3665,7 +3665,7 @@ purple_str_size_to_units(goffset size) { static const char * const size_str[] = { "bytes", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB" }; float size_mag; - int size_index = 0; + gsize size_index = 0; if (size == -1) { return g_strdup(_("Calculating...")); @@ -3811,13 +3811,13 @@ void purple_got_protocol_handler_uri(const char *uri) const char *tmp, *param_string; char *cmd; GHashTable *params = NULL; - int len; + gsize len; if (!(tmp = strchr(uri, ':')) || tmp == uri) { purple_debug_error("util", "Malformed protocol handler message - missing protocol.\n"); return; } - len = MIN(sizeof(proto) - 1, (tmp - uri)); + len = MIN(sizeof(proto) - 1, (gsize)(tmp - uri)); strncpy(proto, uri, len); proto[len] = '\0'; @@ -3925,7 +3925,8 @@ purple_url_encode(const char *str) const char *iter; static char buf[BUF_LEN]; char utf_char[6]; - guint i, j = 0; + int i; + guint j = 0; g_return_val_if_fail(str != NULL, NULL); g_return_val_if_fail(g_utf8_validate(str, -1, NULL), NULL); @@ -4438,7 +4439,7 @@ purple_utf8_has_word(const char *haystack, const char *needle) ("!g_unichar_isalnum()" is not a valid way to determine word boundaries, but it is the only reasonable thing to do here), and isn't the '&' from a "&" or some such entity*/ - (before != -2 && !g_unichar_isalnum(before) && *(p - 1) != '&')) + (before != -2 && !g_unichar_isalnum(before) && *(p - 1) != '&')) /* XXX: what does "-2" means? */ && after != -2 && !g_unichar_isalnum(after)) { ret = TRUE; break; @@ -4578,7 +4579,8 @@ purple_escape_filename(const char *str) const char *iter; static char buf[BUF_LEN]; char utf_char[6]; - guint i, j = 0; + int i; + guint j = 0; g_return_val_if_fail(str != NULL, NULL); g_return_val_if_fail(g_utf8_validate(str, -1, NULL), NULL); diff --git a/libpurple/xmlnode.c b/libpurple/xmlnode.c index dc0ab81128..81285a514f 100644 --- a/libpurple/xmlnode.c +++ b/libpurple/xmlnode.c @@ -122,7 +122,7 @@ xmlnode_insert_data(xmlnode *node, const char *data, gssize size) g_return_if_fail(data != NULL); g_return_if_fail(size != 0); - real_size = size == -1 ? strlen(data) : size; + real_size = size == -1 ? strlen(data) : (gsize)size; child = new_node(NULL, XMLNODE_TYPE_DATA); @@ -803,7 +803,7 @@ xmlnode_from_str(const char *str, gssize size) g_return_val_if_fail(str != NULL, NULL); - real_size = size < 0 ? strlen(str) : size; + real_size = size < 0 ? strlen(str) : (gsize)size; xpd = g_new0(struct _xmlnode_parser_data, 1); if (xmlSAXUserParseMemory(&xmlnode_parser_libxml, xpd, str, real_size) < 0) { diff --git a/pidgin/gtkaccount.c b/pidgin/gtkaccount.c index d5ddca759d..574cc1e751 100644 --- a/pidgin/gtkaccount.c +++ b/pidgin/gtkaccount.c @@ -2056,7 +2056,8 @@ drag_data_received_cb(GtkWidget *widget, GdkDragContext *ctx, return; } - purple_accounts_reorder(a, dest_index); + if (dest_index >= 0) + purple_accounts_reorder(a, dest_index); } } } |