summaryrefslogtreecommitdiff
path: root/platform/android/export
diff options
context:
space:
mode:
authorPedro J. Estébanez <pedrojrulez@gmail.com>2017-12-10 02:28:16 +0100
committerPedro J. Estébanez <pedrojrulez@gmail.com>2017-12-10 02:31:51 +0100
commit9e9db55cb82ebfda0d6761082e9c6941e3c75082 (patch)
treed3679f01d8e29b5bc45ee0a2b3694482c83c45b8 /platform/android/export
parentc68300b88da586aa3c7a7e35397cddd9e24c3fd1 (diff)
Fix crash on Android export
Caused by a zero-length command-line segment. Fixes #14343.
Diffstat (limited to 'platform/android/export')
-rw-r--r--platform/android/export/export.cpp11
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();