Hey,

I think that there is a problem with eina_strbuf_append().

buf is initialized with buf->len=0 and buf->size=32 and buf->buf is 32 
bytes long.

during the first call of _append(), if str="abcd", len = 4. So, 
_eina_strbuf_grow() does nothing and is replaced by EINA_TRUE. Hence, in 
_append(), the memcpy is:

memcpy(buf->buf, str, 32 - 0 + 1)

so we copy too much bytes. So I think that there is a problem in _grow() 
when size+1 <= buf->size

Also, i find strange that only strlen(str) is used and not strlen(str)+1 
(we loose the NULL terminating char). Not sure if it's handled somewhere 
else

Seb, can you look at that, please ?

Vincent

PS: you can thank Opensolaris for spotting that problem :p

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to