qulogic/pidgin

Fix TALOS-CAN-0133
release-2.x.y
2016-06-02, Andrew Victor
1c4acc6977a8
Parents 5e5e84e8a798
Children 1281102d2d48
Fix TALOS-CAN-0133
--- a/libpurple/protocols/mxit/formcmds.c Sun May 15 05:41:39 2016 -0300
+++ b/libpurple/protocols/mxit/formcmds.c Thu Jun 02 14:53:51 2016 -0500
@@ -395,6 +395,9 @@
/* validator */
validator = g_hash_table_lookup(hash, "v");
+ if (!name || !validator)
+ return;
+
/* image data */
tmp = g_hash_table_lookup(hash, "dat");
if (tmp) {
@@ -430,13 +433,13 @@
}
tmp = g_hash_table_lookup(hash, "fw");
- width = atoi(tmp);
+ width = (tmp ? atoi(tmp) : 0);
tmp = g_hash_table_lookup(hash, "fh");
- height = atoi(tmp);
+ height = (tmp ? atoi(tmp) : 0);
tmp = g_hash_table_lookup(hash, "layer");
- layer = atoi(tmp);
+ layer = (tmp ? atoi(tmp) : 0);
purple_debug_info(MXIT_PLUGIN_ID, "ImageStrip %s from %s: [w=%i h=%i l=%i validator=%s]\n", name, from, width, height, layer, validator);
}
@@ -525,21 +528,26 @@
/* table name */
name = g_hash_table_lookup(hash, "nm");
+ if (!name)
+ return;
/* number of columns */
tmp = g_hash_table_lookup(hash, "col");
- nr_columns = atoi(tmp);
+ nr_columns = (tmp ? atoi(tmp) : 0);
/* number of rows */
tmp = g_hash_table_lookup(hash, "row");
- nr_rows = atoi(tmp);
+ nr_rows = (tmp ? atoi(tmp) : 0);
/* mode */
tmp = g_hash_table_lookup(hash, "mode");
- mode = atoi(tmp);
+ mode = (tmp ? atoi(tmp) : 0);
/* table data */
tmp = g_hash_table_lookup(hash, "d");
+ if (!tmp)
+ tmp = "";
+
coldata = g_strsplit(tmp, "~", 0); /* split into entries for each row & column */
purple_debug_info(MXIT_PLUGIN_ID, "Table %s from %s: [cols=%i rows=%i mode=%i]\n", name, mx->from, nr_columns, nr_rows, mode);