aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/stardict.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/stardict.c b/src/stardict.c
index cdd11a1..6775553 100644
--- a/src/stardict.c
+++ b/src/stardict.c
@@ -1014,6 +1014,10 @@ stardict_longest_common_collation_prefix (StardictDict *sd,
u_strFromUTF8 (NULL, 0, &uc2_len, s2, -1, &error);
error = U_ZERO_ERROR;
+ // Prevent undefined behaviour with VLAs.
+ if (!uc1_len || !uc2_len)
+ return 0;
+
UChar uc1[uc1_len];
UChar uc2[uc2_len];
u_strFromUTF8 (uc1, uc1_len, NULL, s1, -1, &error);