Check if the array is larger than 0

Use malloc
Make sure everything is freed


SVN revision: 23362
This commit is contained in:
sebastid 2006-06-10 19:26:25 +00:00 committed by sebastid
parent b877a0e74a
commit 72dc506883
1 changed files with 15 additions and 3 deletions

View File

@ -748,18 +748,30 @@ ecore_x_icccm_command_get(Ecore_X_Window win, int *argc, char ***argv)
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);
}