It seems that the problem were on how I was creating the zbuffer ZVAL the right code is:
zval *zbuffer;
MAKE_STD_ZVAL(zbuffer);
Z_TYPE_P(zbuffer) = IS_STRING;
Z_STRVAL_P(zbuffer) = WS_G(buffer);
Z_STRLEN_P(zbuffer) = WS_G(bufferLen);
Thanks!