raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=1b73bedd4d796b530c0afca29532290b7ebed373

commit 1b73bedd4d796b530c0afca29532290b7ebed373
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Thu Mar 24 12:17:35 2016 +0900

    e mod: cpufreq - handle the case where cpu has zero freqs - dont crash
    
    it can be that if you remove setuid bits on cpufreq binary we can end
    up with zero freqs on bsd. this causes a crash.
    
    @fix
---
 src/modules/cpufreq/e_mod_main.c | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c
index f6d0f1a..0d9d8f7 100644
--- a/src/modules/cpufreq/e_mod_main.c
+++ b/src/modules/cpufreq/e_mod_main.c
@@ -1040,22 +1040,28 @@ _cpufreq_face_update_available(Instance *inst)
    int i;
    unsigned int count;
 
-   count = eina_list_count(cpufreq_config->status->frequencies);
-   frequency_msg = malloc(sizeof(Edje_Message_Int_Set) + (count - 1) * 
sizeof(int));
-   EINA_SAFETY_ON_NULL_RETURN(frequency_msg);
-   frequency_msg->count = count;
-   for (l = cpufreq_config->status->frequencies, i = 0; l; l = l->next, i++)
-     frequency_msg->val[i] = (long)l->data;
-   edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_INT_SET, 1, 
frequency_msg);
-   free(frequency_msg);
+   if (cpufreq_config->status->frequencies)
+     {
+        count = eina_list_count(cpufreq_config->status->frequencies);
+        frequency_msg = malloc(sizeof(Edje_Message_Int_Set) + (count - 1) * 
sizeof(int));
+        EINA_SAFETY_ON_NULL_RETURN(frequency_msg);
+        frequency_msg->count = count;
+        for (l = cpufreq_config->status->frequencies, i = 0; l; l = l->next, 
i++)
+          frequency_msg->val[i] = (long)l->data;
+        edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_INT_SET, 1, 
frequency_msg);
+        free(frequency_msg);
+     }
 
-   count = eina_list_count(cpufreq_config->status->governors);
-   governor_msg = malloc(sizeof(Edje_Message_String_Set) + (count - 1) * 
sizeof(char *));
-   governor_msg->count = count;
-   for (l = cpufreq_config->status->governors, i = 0; l; l = l->next, i++)
-     governor_msg->str[i] = (char *)l->data;
-   edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_STRING_SET, 2, 
governor_msg);
-   free(governor_msg);
+   if (cpufreq_config->status->governors)
+     {
+        count = eina_list_count(cpufreq_config->status->governors);
+        governor_msg = malloc(sizeof(Edje_Message_String_Set) + (count - 1) * 
sizeof(char *));
+        governor_msg->count = count;
+        for (l = cpufreq_config->status->governors, i = 0; l; l = l->next, i++)
+          governor_msg->str[i] = (char *)l->data;
+        edje_object_message_send(inst->o_cpu, EDJE_MESSAGE_STRING_SET, 2, 
governor_msg);
+        free(governor_msg);
+     }
 }
 
 static void

-- 


Reply via email to