/pidgin/main: 2897add11757: Silence some coverity false positives

Tomasz Wasilczyk <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 2897add117575c515365af62936267cf02dc944d
Author:	 Tomasz Wasilczyk <[email protected]>
Date:	 2014-05-12 21:13 +0200
Branch:	 release-2.x.y
URL: https://hg.pidgin.im/pidgin/main/rev/2897add11757

Description:

Silence some coverity false positives

diffstat:

 libpurple/internal.h                   |   8 ++++++++
 libpurple/plugins/perl/common/module.h |  11 +++++++++++
 libpurple/protocols/jabber/jabber.c    |   2 +-
 libpurple/protocols/jabber/si.c        |   5 ++++-
 libpurple/xmlnode.c                    |   4 +---
 5 files changed, 25 insertions(+), 5 deletions(-)

diffs (91 lines):

diff --git a/libpurple/internal.h b/libpurple/internal.h
--- a/libpurple/internal.h
+++ b/libpurple/internal.h
@@ -174,6 +174,14 @@
 
 #endif /* __clang__ */
 
+#ifdef __COVERITY__
+
+/* avoid TAINTED_SCALAR warning */
+#undef g_utf8_next_char
+#define g_utf8_next_char(p) (char *)((p) + 1)
+
+#endif
+
 /* Safer ways to work with static buffers. When using non-static
  * buffers, either use g_strdup_* functions (preferred) or use
  * g_strlcpy/g_strlcpy directly. */
diff --git a/libpurple/plugins/perl/common/module.h b/libpurple/plugins/perl/common/module.h
--- a/libpurple/plugins/perl/common/module.h
+++ b/libpurple/plugins/perl/common/module.h
@@ -71,6 +71,17 @@ typedef struct group *Purple__Group;
 #include "whiteboard.h"
 #include "xmlnode.h"
 
+#ifdef __COVERITY__
+
+/* avoid extra_comma false positives */
+#undef SvPOK_only
+#define SvPOK_only(sv) { \
+	SvFLAGS(sv) &= ~(SVf_OK | SVf_IVisUV | SVf_UTF8); \
+	SvFLAGS(sv) |= (SVf_POK | SVp_POK); \
+	}
+
+#endif /* __COVERITY__ */
+
 /* account.h */
 typedef PurpleAccount *			Purple__Account;
 typedef PurpleAccountOption *		Purple__Account__Option;
diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c
--- a/libpurple/protocols/jabber/jabber.c
+++ b/libpurple/protocols/jabber/jabber.c
@@ -474,7 +474,7 @@ void jabber_send_raw(JabberStream *js, c
 	g_return_if_fail(data != NULL);
 
 	/* because printing a tab to debug every minute gets old */
-	if(strcmp(data, "\t")) {
+	if (data && strcmp(data, "\t") != 0) {
 		const char *username;
 		char *text = NULL, *last_part = NULL, *tag_start = NULL;
 
diff --git a/libpurple/protocols/jabber/si.c b/libpurple/protocols/jabber/si.c
--- a/libpurple/protocols/jabber/si.c
+++ b/libpurple/protocols/jabber/si.c
@@ -1715,11 +1715,13 @@ void jabber_si_parse(JabberStream *js, c
 
 	if((filesize_c = xmlnode_get_attrib(file, "size")))
 		filesize_64 = g_ascii_strtoull(filesize_c, NULL, 10);
+
+#ifndef __COVERITY__
 	/* TODO 3.0.0: When the core uses a guint64, this is redundant.
 	 * See #8477.
 	 *
 	 * It may not be necessary on 64-bit machine.
-	 * coverity[result_independent_of_operands]
+	 * It raises result_independent_of_operands coverity false positive.
 	 */
 	if (filesize_64 > G_MAXSIZE) {
 		/* Should this pop up a warning? */
@@ -1727,6 +1729,7 @@ void jabber_si_parse(JabberStream *js, c
 		                     " -- see #8477 for more details.");
 		return;
 	}
+#endif
 	filesize = filesize_64;
 
 	if(!(feature = xmlnode_get_child(si, "feature")))
diff --git a/libpurple/xmlnode.c b/libpurple/xmlnode.c
--- a/libpurple/xmlnode.c
+++ b/libpurple/xmlnode.c
@@ -842,9 +842,7 @@ xmlnode_copy(const xmlnode *src)
 			sibling->next = xmlnode_copy(child);
 			sibling = sibling->next;
 		} else {
-			ret->child = xmlnode_copy(child);
-			/* coverity[copy_paste_error] */
-			sibling = ret->child;
+			ret->child = sibling = xmlnode_copy(child);
 		}
 		sibling->parent = ret;
 	}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.