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