fix another null deref

SVN revision: 64905
This commit is contained in:
Mike Blumenkrantz 2011-11-07 23:29:44 +00:00
parent 2a905bb70d
commit 4ae3818d7c
1 changed files with 11 additions and 16 deletions

View File

@ -149,31 +149,26 @@ _e_kbd_buf_actual_string_update(E_Kbd_Buf *kb)
char *actual = NULL;
int actual_len = 0;
unsigned int actual_size = 0;
E_Kbd_Buf_Keystroke *ks;
_e_kbd_buf_actual_string_clear(kb);
for (l = kb->keystrokes; l; l = l->next)
EINA_LIST_FOREACH(kb->keystrokes, l, ks)
{
E_Kbd_Buf_Keystroke *ks;
const char *str;
ks = l->data;
str = _e_kbd_buf_keystroke_string_get(kb, ks);
if (str)
if (!str) continue;
if (!actual) actual_size += 64, actual = malloc(actual_size);
else if ((actual_len + strlen(str) + 1) > actual_size)
{
if ((actual_len + strlen(str) + 1) > actual_size)
{
actual_size += 64;
actual = realloc(actual, actual_size);
}
strcpy(actual + actual_len, str);
actual_len += strlen(str);
actual_size += 64;
actual = realloc(actual, actual_size);
}
strcpy(actual + actual_len, str);
actual_len += strlen(str);
}
if (actual)
{
kb->actual_string = eina_stringshare_add(actual);
if (actual) free(actual);
}
kb->actual_string = eina_stringshare_add(actual);
free(actual);
}
static const char *