Tue, 06 May 2014 20:36:57 +0200
Fix some other coverity warnings
--- a/libpurple/protocols/yahoo/libymsg.c Tue May 06 20:07:13 2014 +0200 +++ b/libpurple/protocols/yahoo/libymsg.c Tue May 06 20:36:57 2014 +0200 @@ -990,7 +990,9 @@ return; } - if( (pkt->status == -1) || (pkt->status == YAHOO_STATUS_DISCONNECTED) ) { + if ((int)pkt->status < 0) + pkt->status = YAHOO_STATUS_DISCONNECTED; + if (pkt->status == YAHOO_STATUS_DISCONNECTED) { if (server_msg) { PurpleConversation *c; c = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, sms->from, account);
--- a/libpurple/protocols/zephyr/ZReadAscii.c Tue May 06 20:07:13 2014 +0200 +++ b/libpurple/protocols/zephyr/ZReadAscii.c Tue May 06 20:36:57 2014 +0200 @@ -58,12 +58,17 @@ unsigned long *value_ptr; { unsigned char buf[4]; + unsigned long value = 0; Code_t retval; retval = ZReadAscii(ptr, len, buf, 4); if (retval != ZERR_NONE) return retval; - *value_ptr = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + value |= buf[0] << 24; + value |= buf[1] << 16; + value |= buf[2] << 8; + value |= buf[3]; + *value_ptr = value; return ZERR_NONE; }
--- a/libpurple/protocols/zephyr/ZRetSubs.c Tue May 06 20:07:13 2014 +0200 +++ b/libpurple/protocols/zephyr/ZRetSubs.c Tue May 06 20:36:57 2014 +0200 @@ -132,6 +132,7 @@ __subscriptions_num = __subscriptions_num / 3; + free(__subscriptions_list); __subscriptions_list = (ZSubscription_t *) malloc((unsigned)(__subscriptions_num* sizeof(ZSubscription_t)));
--- a/libpurple/protocols/zephyr/zephyr.c Tue May 06 20:07:13 2014 +0200 +++ b/libpurple/protocols/zephyr/zephyr.c Tue May 06 20:36:57 2014 +0200 @@ -214,18 +214,18 @@ * wouldn't do this. but it is so i will. */ /* just for debugging */ -static void handle_unknown(ZNotice_t notice) +static void handle_unknown(ZNotice_t *notice) { - purple_debug_error("zephyr","z_packet: %s\n", notice.z_packet); - purple_debug_error("zephyr","z_version: %s\n", notice.z_version); - purple_debug_error("zephyr","z_kind: %d\n", (int)(notice.z_kind)); - purple_debug_error("zephyr","z_class: %s\n", notice.z_class); - purple_debug_error("zephyr","z_class_inst: %s\n", notice.z_class_inst); - purple_debug_error("zephyr","z_opcode: %s\n", notice.z_opcode); - purple_debug_error("zephyr","z_sender: %s\n", notice.z_sender); - purple_debug_error("zephyr","z_recipient: %s\n", notice.z_recipient); - purple_debug_error("zephyr","z_message: %s\n", notice.z_message); - purple_debug_error("zephyr","z_message_len: %d\n", notice.z_message_len); + purple_debug_error("zephyr","z_packet: %s\n", notice->z_packet); + purple_debug_error("zephyr","z_version: %s\n", notice->z_version); + purple_debug_error("zephyr","z_kind: %d\n", (int)(notice->z_kind)); + purple_debug_error("zephyr","z_class: %s\n", notice->z_class); + purple_debug_error("zephyr","z_class_inst: %s\n", notice->z_class_inst); + purple_debug_error("zephyr","z_opcode: %s\n", notice->z_opcode); + purple_debug_error("zephyr","z_sender: %s\n", notice->z_sender); + purple_debug_error("zephyr","z_recipient: %s\n", notice->z_recipient); + purple_debug_error("zephyr","z_message: %s\n", notice->z_message); + purple_debug_error("zephyr","z_message_len: %d\n", notice->z_message_len); } @@ -749,21 +749,28 @@ /* Called when the server notifies us a message couldn't get sent */ -static void message_failed(PurpleConnection *gc, ZNotice_t notice, struct sockaddr_in from) +static void message_failed(PurpleConnection *gc, ZNotice_t *notice, struct sockaddr_in from) { - if (g_ascii_strcasecmp(notice.z_class, "message")) { - gchar* chat_failed = g_strdup_printf(_("Unable to send to chat %s,%s,%s"),notice.z_class,notice.z_class_inst,notice.z_recipient); + if (g_ascii_strcasecmp(notice->z_class, "message")) { + gchar* chat_failed = g_strdup_printf( + _("Unable to send to chat %s,%s,%s"), + notice->z_class, notice->z_class_inst, + notice->z_recipient); purple_notify_error(gc,"",chat_failed,NULL); g_free(chat_failed); } else { - purple_notify_error(gc, notice.z_recipient, _("User is offline"), NULL); + purple_notify_error(gc, notice->z_recipient, + _("User is offline"), NULL); } } -static void handle_message(PurpleConnection *gc,ZNotice_t notice) +static void handle_message(PurpleConnection *gc, ZNotice_t *notice_p) { + ZNotice_t notice; zephyr_account* zephyr = gc->proto_data; + memcpy(¬ice, notice_p, sizeof(notice)); /* TODO - use pointer? */ + if (!g_ascii_strcasecmp(notice.z_class, LOGIN_CLASS)) { /* well, we'll be updating in 20 seconds anyway, might as well ignore this. */ } else if (!g_ascii_strcasecmp(notice.z_class, LOCATE_CLASS)) { @@ -1132,7 +1139,7 @@ notice.z_default_format = "Class $class, Instance $instance:\n" "To: @bold($recipient) at $time $date\n" "From: @bold($1) <$sender>\n\n$2"; notice.z_message_len = strlen(msg) + 3; notice.z_message = buf; - handle_message(gc, notice); + handle_message(gc, ¬ice); g_free(msg); /* g_free(zsig); */ g_free(buf); @@ -1231,20 +1238,20 @@ case UNSAFE: case UNACKED: case ACKED: - handle_message(gc,notice); + handle_message(gc, ¬ice); break; case SERVACK: if (!(g_ascii_strcasecmp(notice.z_message, ZSRVACK_NOTSENT))) { - message_failed(gc,notice, from); + message_failed(gc, ¬ice, from); } break; case CLIENTACK: purple_debug_error("zephyr", "Client ack received\n"); - handle_unknown(notice); /* XXX: is it really unknown? */ + handle_unknown(¬ice); /* XXX: is it really unknown? */ break; default: /* we'll just ignore things for now */ - handle_unknown(notice); + handle_unknown(¬ice); purple_debug_error("zephyr", "Unhandled notice.\n"); break; }
--- a/pidgin/gtksourceundomanager.c Tue May 06 20:07:13 2014 +0200 +++ b/pidgin/gtksourceundomanager.c Tue May 06 20:36:57 2014 +0200 @@ -988,9 +988,13 @@ if (undo_action->action_type == GTK_SOURCE_UNDO_ACTION_DELETE) { - if ((last_action->action.delete.forward != undo_action->action.delete.forward) || - ((last_action->action.delete.start != undo_action->action.delete.start) && - (last_action->action.delete.start != undo_action->action.delete.end))) + GtkSourceUndoDeleteAction *last_del, *undo_del; + + last_del = &last_action->action.delete; + undo_del = &undo_action->action.delete; + + if (last_del->forward != undo_del->forward || + (last_del->start != undo_del->start && last_del->start != undo_del->end)) { last_action->mergeable = FALSE; return FALSE;