Evas_Object_Textblock_Node_Format *fnode;
Eina_Unicode *text_base, *text;
int off;
+ size_t len;
/* For each text node to thorugh all of it's format nodes
* append text from the start to the offset of the next format
* this is the core algorithm of the layout mechanism.
* Skip the unicode replacement chars when there are because
* we don't want to print them. */
+ len = eina_ustrbuf_length_get(n->unicode);
text_base = text =
- eina_unicode_strndup(eina_ustrbuf_string_get(n->unicode),
- eina_ustrbuf_length_get(n->unicode));
+ eina_unicode_strndup(eina_ustrbuf_string_get(n->unicode), len);
fnode = n->format_node;
off = 0;
while (fnode && (fnode->text_node == n))
{
Eina_Unicode tmp_ch;
off += fnode->offset;
+
+ if (off > len) break;
/* No need to skip on the first run */
tmp_ch = text[off];
text[off] = 0; /* Null terminate the part of the string */