/pidgin/main: 2d7d55acd82c: Coverity: fix null pointer dereferences
Tomasz Wasilczyk
twasilczyk at pidgin.im
Thu May 15 17:02:31 EDT 2014
Changeset: 2d7d55acd82c0de210064ca5b2c10b1150a9b7fa
Author: Tomasz Wasilczyk <twasilczyk at pidgin.im>
Date: 2014-05-15 23:02 +0200
Branch: default
URL: https://hg.pidgin.im/pidgin/main/rev/2d7d55acd82c
Description:
Coverity: fix null pointer dereferences
diffstat:
libpurple/http.c | 7 ++++---
libpurple/protocols/gg/utils.c | 3 ++-
libpurple/protocols/yahoo/yahoo_profile.c | 2 +-
libpurple/request.c | 6 ++++--
4 files changed, 11 insertions(+), 7 deletions(-)
diffs (84 lines):
diff --git a/libpurple/http.c b/libpurple/http.c
--- a/libpurple/http.c
+++ b/libpurple/http.c
@@ -1944,6 +1944,7 @@ static void purple_http_cookie_jar_parse
"Invalid cookie: [%s]\n", cookie);
else
purple_debug_warning("http", "Invalid cookie.");
+ continue;
}
name = g_strndup(cookie, eqsign - cookie);
@@ -1955,7 +1956,7 @@ static void purple_http_cookie_jar_parse
if (semicolon != NULL) {
GMatchInfo *match_info;
- GRegex *re_expires = g_regex_new(
+ GRegex *re_expires = g_regex_new( /* XXX: make it static */
"expires=([a-z0-9, :]+)",
G_REGEX_OPTIMIZE | G_REGEX_CASELESS,
G_REGEX_MATCH_NOTEMPTY, NULL);
@@ -2884,7 +2885,7 @@ purple_http_url_parse(const char *raw_ur
url->fragment = g_match_info_fetch(match_info, 4);
g_match_info_free(match_info);
- if (url->protocol[0] == '\0') {
+ if (g_strcmp0(url->protocol, "") == 0) {
g_free(url->protocol);
url->protocol = NULL;
} else if (url->protocol != NULL) {
@@ -2939,7 +2940,7 @@ purple_http_url_parse(const char *raw_ur
g_free(url->password);
url->password = NULL;
}
- if (url->host[0] == '\0') {
+ if (g_strcmp0(url->host, "") == 0) {
g_free(url->host);
url->host = NULL;
} else if (url->host != NULL) {
diff --git a/libpurple/protocols/gg/utils.c b/libpurple/protocols/gg/utils.c
--- a/libpurple/protocols/gg/utils.c
+++ b/libpurple/protocols/gg/utils.c
@@ -111,10 +111,11 @@ gboolean ggp_password_validate(const gch
gchar * ggp_utf8_strndup(const gchar *str, gsize n)
{
- size_t raw_len = strlen(str);
+ size_t raw_len;
gchar *end_ptr;
if (str == NULL)
return NULL;
+ raw_len = strlen(str);
if (raw_len <= n)
return g_strdup(str);
diff --git a/libpurple/protocols/yahoo/yahoo_profile.c b/libpurple/protocols/yahoo/yahoo_profile.c
--- a/libpurple/protocols/yahoo/yahoo_profile.c
+++ b/libpurple/protocols/yahoo/yahoo_profile.c
@@ -1018,7 +1018,7 @@ yahoo_got_photo(PurpleHttpConnection *ht
purple_debug_misc("yahoo", "after utf8 conversion: stripped = (%s)\n", stripped);
}
- if (strings && profile_state == PROFILE_STATE_DEFAULT) {
+ if (profile_state == PROFILE_STATE_DEFAULT) {
#if 0
/* extract their Yahoo! ID and put it in. Don't bother marking has_info as
* true, since the Yahoo! ID will always be there */
diff --git a/libpurple/request.c b/libpurple/request.c
--- a/libpurple/request.c
+++ b/libpurple/request.c
@@ -959,10 +959,12 @@ purple_request_field_destroy(PurpleReque
while (it != NULL) {
g_free(it->data);
it = g_list_next(it); /* value */
+ if (it == NULL) {
+ g_warn_if_reached();
+ break;
+ }
if (it->data && field->u.choice.data_destroy)
field->u.choice.data_destroy(it->data);
- if (it == NULL)
- break;
it = g_list_next(it); /* next label */
}
g_list_free(field->u.choice.elements);
More information about the Commits
mailing list