diff options
author | Kyeongkab.Nam <Kyeongkab.Nam@sony.com> | 2019-07-22 19:57:21 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-07-22 19:57:21 -0700 |
commit | 15e24878d6a0a3d55a5e1583c2952d372e986f9a (patch) | |
tree | fdcbd7f4c5de06ddd0a72460ff89bcfd7a7cdffa /cmds/bootanimation/BootAnimation.cpp | |
parent | fe17bdccf983fab8397d0f37191f6d37ccc2d66b (diff) | |
parent | 935d8032c81910169de32d6accca8bb4ce104682 (diff) |
Merge "Fix bootanimation stack overflow"
am: 935d8032c8
Change-Id: If5b2538dc6f2f8639166eaf9c27eb152b8c5419a
Diffstat (limited to 'cmds/bootanimation/BootAnimation.cpp')
-rw-r--r-- | cmds/bootanimation/BootAnimation.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp index 30f4ad4c5c69..db384baff4d7 100644 --- a/cmds/bootanimation/BootAnimation.cpp +++ b/cmds/bootanimation/BootAnimation.cpp @@ -63,6 +63,10 @@ #include "BootAnimation.h" +#define ANIM_PATH_MAX 255 +#define STR(x) #x +#define STRTO(x) STR(x) + namespace android { static const char OEM_BOOTANIMATION_FILE[] = "/oem/media/bootanimation.zip"; @@ -96,7 +100,7 @@ static constexpr size_t FONT_NUM_ROWS = FONT_NUM_CHARS / FONT_NUM_COLS; static const int TEXT_CENTER_VALUE = INT_MAX; static const int TEXT_MISSING_VALUE = INT_MIN; static const char EXIT_PROP_NAME[] = "service.bootanim.exit"; -static const int ANIM_ENTRY_NAME_MAX = 256; +static const int ANIM_ENTRY_NAME_MAX = ANIM_PATH_MAX + 1; static constexpr size_t TEXT_POS_LEN_MAX = 16; // --------------------------------------------------------------------------- @@ -694,7 +698,7 @@ bool BootAnimation::parseAnimationDesc(Animation& animation) animation.width = width; animation.height = height; animation.fps = fps; - } else if (sscanf(l, " %c %d %d %s #%6s %16s %16s", + } else if (sscanf(l, " %c %d %d %" STRTO(ANIM_PATH_MAX) "s #%6s %16s %16s", &pathType, &count, &pause, path, color, clockPos1, clockPos2) >= 4) { //SLOGD("> type=%c, count=%d, pause=%d, path=%s, color=%s, clockPos1=%s, clockPos2=%s", // pathType, count, pause, path, color, clockPos1, clockPos2); |