diff options
author | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2017-12-10 02:28:16 +0100 |
---|---|---|
committer | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2017-12-10 02:31:51 +0100 |
commit | 9e9db55cb82ebfda0d6761082e9c6941e3c75082 (patch) | |
tree | d3679f01d8e29b5bc45ee0a2b3694482c83c45b8 /platform | |
parent | c68300b88da586aa3c7a7e35397cddd9e24c3fd1 (diff) |
Fix crash on Android export
Caused by a zero-length command-line segment.
Fixes #14343.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/android/export/export.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index 67e00f4952..255413bf2c 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -1557,12 +1557,15 @@ public: encode_uint32(cl.size(), &clf[0]); for (int i = 0; i < cl.size(); i++) { + print_line(itos(i) + " param: " + cl[i]); CharString txt = cl[i].utf8(); int base = clf.size(); - clf.resize(base + 4 + txt.length()); - encode_uint32(txt.length(), &clf[base]); - copymem(&clf[base + 4], txt.ptr(), txt.length()); - print_line(itos(i) + " param: " + cl[i]); + int length = txt.length(); + if (!length) + continue; + clf.resize(base + 4 + length); + encode_uint32(length, &clf[base]); + copymem(&clf[base + 4], txt.ptr(), length); } zip_fileinfo zipfi = get_zip_fileinfo(); |