Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_x


Modified Files:
        ecore_x_icccm.c 


Log Message:
Check if the array is larger than 0
Use malloc
Make sure everything is freed

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_x/ecore_x_icccm.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -3 -r1.44 -r1.45
--- ecore_x_icccm.c     10 Jun 2006 16:54:36 -0000      1.44
+++ ecore_x_icccm.c     10 Jun 2006 19:26:25 -0000      1.45
@@ -748,18 +748,30 @@
 
    if (!XGetCommand(_ecore_x_disp, win, &v, &c))
      return;
+   if (c < 1)
+     {
+       if (v)
+         XFreeStringList(v);
+               return;
+     }
 
    if (argc) *argc = c;
    if (argv)
      {
-       (*argv) = calloc(c, sizeof(char *));
+       (*argv) = malloc(c * sizeof(char *));
        if (!*argv)
          { 
-            *argc = 0;
+            XFreeStringList(v);
+            if (argc) *argc = 0;
             return;
          }
        for (i = 0; i < c; i++)
-         (*argv)[i] = strdup(v[i]);
+         {
+            if (v[i])
+              (*argv)[i] = strdup(v[i]);
+            else
+              (*argv)[i] = strdup("");
+         }
      }
    XFreeStringList(v);
 }




_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to