aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2013-02-04 11:53:54 +0000
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>2013-02-04 11:53:54 +0000
commit397713edc8d0c88f0f9a1f8537da98063713ce94 (patch)
tree2a8cf12e0d46657d9adfc28fd35b1b7183091ccc
parente33b1336240de0dc524128fc19f2f115ac4afa52 (diff)
downloadenlightenment-397713edc8d0c88f0f9a1f8537da98063713ce94.tar.gz
enlightenment-397713edc8d0c88f0f9a1f8537da98063713ce94.tar.xz
enlightenment-397713edc8d0c88f0f9a1f8537da98063713ce94.zip
backport personal apps and xkbswitch fixes from last 2 commits
SVN revision: 83593
-rw-r--r--ChangeLog5
-rw-r--r--NEWS2
-rw-r--r--src/modules/conf_applications/e_int_config_apps_personal.c6
-rw-r--r--src/modules/xkbswitch/e_mod_parse.c8
4 files changed, 16 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 01056d31c..26e7861eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-04 Mike Blumenkrantz
+
+ * fix possible crash in xkb rule parsing
+ * fix list update on deletion of personal app launchers
+
2013-02-01 Mike Blumenkrantz
* fixed leak in profile list dbus method
diff --git a/NEWS b/NEWS
index 03606a5b3..9a3e92a24 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,8 @@ Fixes:
* fixed bugs where keyboard layouts could not be applied or selected
* fixed leak in profile list dbus method
* fixed behavior of Up/Down keys in filemanager when typebuf was visible
+ * fix possible crash in xkb rule parsing
+ * fix list update on deletion of personal app launchers
Changes since 0.17.0:
diff --git a/src/modules/conf_applications/e_int_config_apps_personal.c b/src/modules/conf_applications/e_int_config_apps_personal.c
index 356802a97..8086627b8 100644
--- a/src/modules/conf_applications/e_int_config_apps_personal.c
+++ b/src/modules/conf_applications/e_int_config_apps_personal.c
@@ -199,14 +199,18 @@ _btn_cb_del(void *data, void *data2 __UNUSED__)
E_Config_Dialog_Data *cfdata = data;
const Eina_List *l;
const E_Ilist_Item *it;
+ int x = -1;
EINA_LIST_FOREACH(e_widget_ilist_items_get(cfdata->obj.list), l, it)
{
const char *file;
+ x++;
if (!it->selected) continue;
file = e_widget_ilist_item_data_get(it);
- if (file) ecore_file_unlink(file);
+ if (!file) break;
+ ecore_file_unlink(file);
+ e_widget_ilist_remove_num(cfdata->obj.list, x);
}
}
diff --git a/src/modules/xkbswitch/e_mod_parse.c b/src/modules/xkbswitch/e_mod_parse.c
index bf6be2f78..bc02e6789 100644
--- a/src/modules/xkbswitch/e_mod_parse.c
+++ b/src/modules/xkbswitch/e_mod_parse.c
@@ -88,7 +88,7 @@ parse_rules(void)
if (n) *n = '\0';
/* means end of section */
- if (!buf[0]) break;
+ if (eina_strlen_bounded(buf, 3) < 2) break;
/* get rid of initial 2 spaces here */
p = buf + 2;
tmp = strdup(p);
@@ -125,7 +125,7 @@ parse_rules(void)
n = strchr(buf, '\n');
if (n) *n = '\0';
- if (!buf[0]) break;
+ if (eina_strlen_bounded(buf, 3) < 2) break;
p = buf + 2;
tmp = strdup(p);
@@ -167,7 +167,7 @@ parse_rules(void)
n = strchr(buf, '\n');
if (n) *n = '\0';
- if (!buf[0]) break;
+ if (eina_strlen_bounded(buf, 3) < 2) break;
p = buf + 2;
tmp = strdup(p);
@@ -210,7 +210,7 @@ parse_rules(void)
n = strchr(buf, '\n');
if (n) *n = '\0';
- if (!buf[0]) break;
+ if (eina_strlen_bounded(buf, 3) < 2) break;
p = buf + 2;
tmp = strdup(p);