If the text size is too large, crash or deadlock will occur. 67/205267/14
authorJoogab Yun <joogab.yun@samsung.com>
Thu, 2 May 2019 01:30:44 +0000 (10:30 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Thu, 23 May 2019 00:38:11 +0000 (09:38 +0900)
commitcf1b43bf049ab1a4c9451cd39a836836d4d76b8d
tree9ebcd5ed1a0e884a8b019ac0650f9769da5ec054
parentb97b29c76acefabbae2c0a4e9ecc261bf9dd8036
If the text size is too large, crash or deadlock will occur.

So, we limit the length.

  3  Dali::Toolkit::Text::ShapeText (text=..., lineBreakInfo=..., scripts=..., fonts=..., startCharacterIndex=startCharacterIndex@entry=0,
        startGlyphIndex=0, numberOfCharacters=numberOfCharacters@entry=51371,
        glyphs=..., glyphToCharacterMap=..., charactersPerGlyph=...,
        newParagraphGlyphs=...) at
        /usr/src/debug/dali-toolkit-1.3.50.1/build/tizen/dali-toolkit/../../../dali-toolkit/internal/text/shaper.cpp:200
        ...
                currentIndex = 40291
                numberOfGlyphsReserved = 66782
                totalNumberOfGlyphs = 40203
                numberOfNewGlyphs = 40203
                glyphToCharacterMapBuffer = 0x9f85f8
                glyphIndex = 40196
                lastCharacter = 51371
                lastGlyph = <optimized out>

        (gdb)bt
        0  memmove () at /usr/src/debug//////////////glibc-2.24/string/../sysdeps/arm/memmove.S:124
        1  0xaaa57450 in Dali::VectorAlgorithms<true>::Insert (this=0x9c67f8, at=0x896204a0 "", from=0x9f85f8 "\022", to=<optimized out>,
        elementSize=36) at /usr/include/dali/public-api/common/dali-vector.h:373
        2  0xaaa7d25e in Dali::Vector<Dali::TextAbstraction::GlyphInfo, true>::Insert (to=<optimized out>, from=0x9f85f8, at=0x896204a0,
        this=0x9c67f8) at /usr/include/dali/public-api/common/dali-vector.h:624
        3  Dali::Toolkit::Text::ShapeText (text=..., lineBreakInfo=..., scripts=..., fonts=..., startCharacterIndex=startCharacterIndex@entry=0, startGlyphIndex=0,
        numberOfCharacters=numberOfCharacters@entry=51371, glyphs=..., glyphToCharacterMap=..., charactersPerGlyph=...,
        newParagraphGlyphs=...) at /usr/src/debug/dali-toolkit-1.3.50.1/build/tizen/dali-toolkit/../../../dali-toolkit/internal/text/shaper.cpp:200
        4  0xaaa85b68 in Dali::Toolkit::Text::Controller::Impl::UpdateModel (this=0x9f9760, operationsRequired=<optimized out>) at
        /usr/src/debug/dali-toolkit-1.3.50.1/build/tizen/dali-toolkit/../../../dali-toolkit/internal/text/text-controller-impl.cpp:1019

Change-Id: Ic903833a638afaeb8749dfd1f44cd1d40f5f6939
automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Controller.cpp
dali-toolkit/internal/text/text-controller.cpp