Mercurial > pidgin
comparison libpurple/plugins/log_reader.c @ 18795:883c18d31bf4
Fix more null pointer derefs in the log reader plugin. Fixes #2378.
| author | Daniel Atallah <daniel.atallah@gmail.com> |
|---|---|
| date | Fri, 03 Aug 2007 13:29:02 +0000 |
| parents | 3cc77409b858 |
| children | 615f6343035f |
comparison
equal
deleted
inserted
replaced
| 18794:2cb148647f8f | 18795:883c18d31bf4 |
|---|---|
| 58 char *prpl_name; | 58 char *prpl_name; |
| 59 char *temp; | 59 char *temp; |
| 60 char *path; | 60 char *path; |
| 61 GDir *dir; | 61 GDir *dir; |
| 62 | 62 |
| 63 g_return_val_if_fail(sn != NULL, list); | 63 g_return_val_if_fail(sn != NULL, NULL); |
| 64 g_return_val_if_fail(account != NULL, list); | 64 g_return_val_if_fail(account != NULL, NULL); |
| 65 | 65 |
| 66 logdir = purple_prefs_get_string("/plugins/core/log_reader/adium/log_directory"); | 66 logdir = purple_prefs_get_string("/plugins/core/log_reader/adium/log_directory"); |
| 67 | 67 |
| 68 /* By clearing the log directory path, this logger can be (effectively) disabled. */ | 68 /* By clearing the log directory path, this logger can be (effectively) disabled. */ |
| 69 if (!*logdir) | 69 if (!logdir || !*logdir) |
| 70 return list; | 70 return NULL; |
| 71 | 71 |
| 72 plugin = purple_find_prpl(purple_account_get_protocol_id(account)); | 72 plugin = purple_find_prpl(purple_account_get_protocol_id(account)); |
| 73 if (!plugin) | 73 if (!plugin) |
| 74 return NULL; | 74 return NULL; |
| 75 | 75 |
| 624 xmlnode *root; | 624 xmlnode *root; |
| 625 xmlnode *message; | 625 xmlnode *message; |
| 626 const char *old_session_id = ""; | 626 const char *old_session_id = ""; |
| 627 struct msn_logger_data *data = NULL; | 627 struct msn_logger_data *data = NULL; |
| 628 | 628 |
| 629 g_return_val_if_fail(sn != NULL, list); | 629 g_return_val_if_fail(sn != NULL, NULL); |
| 630 g_return_val_if_fail(account != NULL, list); | 630 g_return_val_if_fail(account != NULL, NULL); |
| 631 | 631 |
| 632 if (strcmp(account->protocol_id, "prpl-msn")) | 632 if (strcmp(account->protocol_id, "prpl-msn")) |
| 633 return list; | 633 return NULL; |
| 634 | 634 |
| 635 logdir = purple_prefs_get_string("/plugins/core/log_reader/msn/log_directory"); | 635 logdir = purple_prefs_get_string("/plugins/core/log_reader/msn/log_directory"); |
| 636 | 636 |
| 637 /* By clearing the log directory path, this logger can be (effectively) disabled. */ | 637 /* By clearing the log directory path, this logger can be (effectively) disabled. */ |
| 638 if (!*logdir) | 638 if (!logdir || !*logdir) |
| 639 return list; | 639 return NULL; |
| 640 | 640 |
| 641 buddy = purple_find_buddy(account, sn); | 641 buddy = purple_find_buddy(account, sn); |
| 642 | 642 |
| 643 if ((username = g_strdup(purple_account_get_string( | 643 if ((username = g_strdup(purple_account_get_string( |
| 644 account, "log_reader_msn_log_folder", NULL)))) { | 644 account, "log_reader_msn_log_folder", NULL)))) { |
| 1119 } | 1119 } |
| 1120 | 1120 |
| 1121 if (name_guessed != NAME_GUESS_UNKNOWN) | 1121 if (name_guessed != NAME_GUESS_UNKNOWN) |
| 1122 text = g_string_append(text, "</span>"); | 1122 text = g_string_append(text, "</span>"); |
| 1123 | 1123 |
| 1124 style = xmlnode_get_attrib(text_node, "Style"); | 1124 style = xmlnode_get_attrib(text_node, "Style"); |
| 1125 | 1125 |
| 1126 tmp = xmlnode_get_data(text_node); | 1126 tmp = xmlnode_get_data(text_node); |
| 1127 if (style && *style) { | 1127 if (style && *style) { |
| 1128 text = g_string_append(text, "<span style=\""); | 1128 text = g_string_append(text, "<span style=\""); |
| 1129 text = g_string_append(text, style); | 1129 text = g_string_append(text, style); |
| 1209 gchar *contents = NULL; | 1209 gchar *contents = NULL; |
| 1210 gsize length; | 1210 gsize length; |
| 1211 gchar *line; | 1211 gchar *line; |
| 1212 gchar *c; | 1212 gchar *c; |
| 1213 | 1213 |
| 1214 g_return_val_if_fail(sn != NULL, list); | 1214 g_return_val_if_fail(sn != NULL, NULL); |
| 1215 g_return_val_if_fail(account != NULL, list); | 1215 g_return_val_if_fail(account != NULL, NULL); |
| 1216 | 1216 |
| 1217 logdir = purple_prefs_get_string("/plugins/core/log_reader/trillian/log_directory"); | 1217 logdir = purple_prefs_get_string("/plugins/core/log_reader/trillian/log_directory"); |
| 1218 | 1218 |
| 1219 /* By clearing the log directory path, this logger can be (effectively) disabled. */ | 1219 /* By clearing the log directory path, this logger can be (effectively) disabled. */ |
| 1220 if (!*logdir) | 1220 if (!logdir || !*logdir) |
| 1221 return list; | 1221 return NULL; |
| 1222 | 1222 |
| 1223 plugin = purple_find_prpl(purple_account_get_protocol_id(account)); | 1223 plugin = purple_find_prpl(purple_account_get_protocol_id(account)); |
| 1224 if (!plugin) | 1224 if (!plugin) |
| 1225 return NULL; | 1225 return NULL; |
| 1226 | 1226 |
| 1774 char *start_log; | 1774 char *start_log; |
| 1775 char *new_line; | 1775 char *new_line; |
| 1776 int offset = 0; | 1776 int offset = 0; |
| 1777 GError *error; | 1777 GError *error; |
| 1778 | 1778 |
| 1779 g_return_val_if_fail(sn != NULL, list); | 1779 g_return_val_if_fail(sn != NULL, NULL); |
| 1780 g_return_val_if_fail(account != NULL, list); | 1780 g_return_val_if_fail(account != NULL, NULL); |
| 1781 | 1781 |
| 1782 /* QIP only supports ICQ. */ | 1782 /* QIP only supports ICQ. */ |
| 1783 if (strcmp(account->protocol_id, "prpl-icq")) | 1783 if (strcmp(account->protocol_id, "prpl-icq")) |
| 1784 return list; | 1784 return NULL; |
| 1785 | 1785 |
| 1786 logdir = purple_prefs_get_string("/plugins/core/log_reader/qip/log_directory"); | 1786 logdir = purple_prefs_get_string("/plugins/core/log_reader/qip/log_directory"); |
| 1787 | 1787 |
| 1788 /* By clearing the log directory path, this logger can be (effectively) disabled. */ | 1788 /* By clearing the log directory path, this logger can be (effectively) disabled. */ |
| 1789 if (!*logdir) | 1789 if (!logdir || !*logdir) |
| 1790 return list; | 1790 return NULL; |
| 1791 | 1791 |
| 1792 plugin = purple_find_prpl(purple_account_get_protocol_id(account)); | 1792 plugin = purple_find_prpl(purple_account_get_protocol_id(account)); |
| 1793 if (!plugin) | 1793 if (!plugin) |
| 1794 return NULL; | 1794 return NULL; |
| 1795 | 1795 |
