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