ee5fd7ccb713f54b4674beecdfc8ab212096f6a3
[platform/framework/web/lwnode.git] /
1 ;;;;;; Invalid UTF-8 custom section names
2
3 ;;;; Continuation bytes not preceded by prefixes
4
5 ;; encoding starts with (first) continuation byte
6 (assert_malformed
7   (module binary
8     "\00asm" "\01\00\00\00"
9     "\00\02"                       ;; custom section
10     "\01\80"                       ;; "\80"
11   )
12   "malformed UTF-8 encoding"
13 )
14
15 ;; encoding starts with (0x8f) continuation byte
16 (assert_malformed
17   (module binary
18     "\00asm" "\01\00\00\00"
19     "\00\02"                       ;; custom section
20     "\01\8f"                       ;; "\8f"
21   )
22   "malformed UTF-8 encoding"
23 )
24
25 ;; encoding starts with (0x90) continuation byte
26 (assert_malformed
27   (module binary
28     "\00asm" "\01\00\00\00"
29     "\00\02"                       ;; custom section
30     "\01\90"                       ;; "\90"
31   )
32   "malformed UTF-8 encoding"
33 )
34
35 ;; encoding starts with (0x9f) continuation byte
36 (assert_malformed
37   (module binary
38     "\00asm" "\01\00\00\00"
39     "\00\02"                       ;; custom section
40     "\01\9f"                       ;; "\9f"
41   )
42   "malformed UTF-8 encoding"
43 )
44
45 ;; encoding starts with (0xa0) continuation byte
46 (assert_malformed
47   (module binary
48     "\00asm" "\01\00\00\00"
49     "\00\02"                       ;; custom section
50     "\01\a0"                       ;; "\a0"
51   )
52   "malformed UTF-8 encoding"
53 )
54
55 ;; encoding starts with (last) continuation byte
56 (assert_malformed
57   (module binary
58     "\00asm" "\01\00\00\00"
59     "\00\02"                       ;; custom section
60     "\01\bf"                       ;; "\bf"
61   )
62   "malformed UTF-8 encoding"
63 )
64
65 ;;;; 2-byte sequences
66
67 ;; 2-byte sequence contains 3 bytes
68 (assert_malformed
69   (module binary
70     "\00asm" "\01\00\00\00"
71     "\00\04"                       ;; custom section
72     "\03\c2\80\80"                 ;; "\c2\80\80"
73   )
74   "malformed UTF-8 encoding"
75 )
76
77 ;; 2-byte sequence contains 1 byte at end of string
78 (assert_malformed
79   (module binary
80     "\00asm" "\01\00\00\00"
81     "\00\02"                       ;; custom section
82     "\01\c2"                       ;; "\c2"
83   )
84   "malformed UTF-8 encoding"
85 )
86
87 ;; 2-byte sequence contains 1 byte
88 (assert_malformed
89   (module binary
90     "\00asm" "\01\00\00\00"
91     "\00\03"                       ;; custom section
92     "\02\c2\2e"                    ;; "\c2."
93   )
94   "malformed UTF-8 encoding"
95 )
96
97 ;;;; 2-byte sequence contents
98
99 ;; overlong encoding after 0xc0 prefix
100 (assert_malformed
101   (module binary
102     "\00asm" "\01\00\00\00"
103     "\00\03"                       ;; custom section
104     "\02\c0\80"                    ;; "\c0\80"
105   )
106   "malformed UTF-8 encoding"
107 )
108
109 ;; overlong encoding after 0xc0 prefix
110 (assert_malformed
111   (module binary
112     "\00asm" "\01\00\00\00"
113     "\00\03"                       ;; custom section
114     "\02\c0\bf"                    ;; "\c0\bf"
115   )
116   "malformed UTF-8 encoding"
117 )
118
119 ;; overlong encoding after 0xc1 prefix
120 (assert_malformed
121   (module binary
122     "\00asm" "\01\00\00\00"
123     "\00\03"                       ;; custom section
124     "\02\c1\80"                    ;; "\c1\80"
125   )
126   "malformed UTF-8 encoding"
127 )
128
129 ;; overlong encoding after 0xc1 prefix
130 (assert_malformed
131   (module binary
132     "\00asm" "\01\00\00\00"
133     "\00\03"                       ;; custom section
134     "\02\c1\bf"                    ;; "\c1\bf"
135   )
136   "malformed UTF-8 encoding"
137 )
138
139 ;; byte after (first) 2-byte prefix not a contination byte
140 (assert_malformed
141   (module binary
142     "\00asm" "\01\00\00\00"
143     "\00\03"                       ;; custom section
144     "\02\c2\00"                    ;; "\c2\00"
145   )
146   "malformed UTF-8 encoding"
147 )
148
149 ;; byte after (first) 2-byte prefix not a continuation byte
150 (assert_malformed
151   (module binary
152     "\00asm" "\01\00\00\00"
153     "\00\03"                       ;; custom section
154     "\02\c2\7f"                    ;; "\c2\7f"
155   )
156   "malformed UTF-8 encoding"
157 )
158
159 ;; byte after (first) 2-byte prefix not a continuation byte
160 (assert_malformed
161   (module binary
162     "\00asm" "\01\00\00\00"
163     "\00\03"                       ;; custom section
164     "\02\c2\c0"                    ;; "\c2\c0"
165   )
166   "malformed UTF-8 encoding"
167 )
168
169 ;; byte after (first) 2-byte prefix not a continuation byte
170 (assert_malformed
171   (module binary
172     "\00asm" "\01\00\00\00"
173     "\00\03"                       ;; custom section
174     "\02\c2\fd"                    ;; "\c2\fd"
175   )
176   "malformed UTF-8 encoding"
177 )
178
179 ;; byte after (last) 2-byte prefix not a continuation byte
180 (assert_malformed
181   (module binary
182     "\00asm" "\01\00\00\00"
183     "\00\03"                       ;; custom section
184     "\02\df\00"                    ;; "\df\00"
185   )
186   "malformed UTF-8 encoding"
187 )
188
189 ;; byte after (last) 2-byte prefix not a continuation byte
190 (assert_malformed
191   (module binary
192     "\00asm" "\01\00\00\00"
193     "\00\03"                       ;; custom section
194     "\02\df\7f"                    ;; "\df\7f"
195   )
196   "malformed UTF-8 encoding"
197 )
198
199 ;; byte after (last) 2-byte prefix not a continuation byte
200 (assert_malformed
201   (module binary
202     "\00asm" "\01\00\00\00"
203     "\00\03"                       ;; custom section
204     "\02\df\c0"                    ;; "\df\c0"
205   )
206   "malformed UTF-8 encoding"
207 )
208
209 ;; byte after (last) 2-byte prefix not a continuation byte
210 (assert_malformed
211   (module binary
212     "\00asm" "\01\00\00\00"
213     "\00\03"                       ;; custom section
214     "\02\df\fd"                    ;; "\df\fd"
215   )
216   "malformed UTF-8 encoding"
217 )
218
219 ;;;; 3-byte sequences
220
221 ;; 3-byte sequence contains 4 bytes
222 (assert_malformed
223   (module binary
224     "\00asm" "\01\00\00\00"
225     "\00\05"                       ;; custom section
226     "\04\e1\80\80\80"              ;; "\e1\80\80\80"
227   )
228   "malformed UTF-8 encoding"
229 )
230
231 ;; 3-byte sequence contains 2 bytes at end of string
232 (assert_malformed
233   (module binary
234     "\00asm" "\01\00\00\00"
235     "\00\03"                       ;; custom section
236     "\02\e1\80"                    ;; "\e1\80"
237   )
238   "malformed UTF-8 encoding"
239 )
240
241 ;; 3-byte sequence contains 2 bytes
242 (assert_malformed
243   (module binary
244     "\00asm" "\01\00\00\00"
245     "\00\04"                       ;; custom section
246     "\03\e1\80\2e"                 ;; "\e1\80."
247   )
248   "malformed UTF-8 encoding"
249 )
250
251 ;; 3-byte sequence contains 1 byte at end of string
252 (assert_malformed
253   (module binary
254     "\00asm" "\01\00\00\00"
255     "\00\02"                       ;; custom section
256     "\01\e1"                       ;; "\e1"
257   )
258   "malformed UTF-8 encoding"
259 )
260
261 ;; 3-byte sequence contains 1 byte
262 (assert_malformed
263   (module binary
264     "\00asm" "\01\00\00\00"
265     "\00\03"                       ;; custom section
266     "\02\e1\2e"                    ;; "\e1."
267   )
268   "malformed UTF-8 encoding"
269 )
270
271 ;;;; 3-byte sequence contents
272
273 ;; first byte after (0xe0) 3-byte prefix not a continuation byte
274 (assert_malformed
275   (module binary
276     "\00asm" "\01\00\00\00"
277     "\00\04"                       ;; custom section
278     "\03\e0\00\a0"                 ;; "\e0\00\a0"
279   )
280   "malformed UTF-8 encoding"
281 )
282
283 ;; first byte after (0xe0) 3-byte prefix not a continuation byte
284 (assert_malformed
285   (module binary
286     "\00asm" "\01\00\00\00"
287     "\00\04"                       ;; custom section
288     "\03\e0\7f\a0"                 ;; "\e0\7f\a0"
289   )
290   "malformed UTF-8 encoding"
291 )
292
293 ;; overlong encoding after 0xe0 prefix
294 (assert_malformed
295   (module binary
296     "\00asm" "\01\00\00\00"
297     "\00\04"                       ;; custom section
298     "\03\e0\80\80"                 ;; "\e0\80\80"
299   )
300   "malformed UTF-8 encoding"
301 )
302
303 ;; overlong encoding after 0xe0 prefix
304 (assert_malformed
305   (module binary
306     "\00asm" "\01\00\00\00"
307     "\00\04"                       ;; custom section
308     "\03\e0\80\a0"                 ;; "\e0\80\a0"
309   )
310   "malformed UTF-8 encoding"
311 )
312
313 ;; overlong encoding after 0xe0 prefix
314 (assert_malformed
315   (module binary
316     "\00asm" "\01\00\00\00"
317     "\00\04"                       ;; custom section
318     "\03\e0\9f\a0"                 ;; "\e0\9f\a0"
319   )
320   "malformed UTF-8 encoding"
321 )
322
323 ;; overlong encoding after 0xe0 prefix
324 (assert_malformed
325   (module binary
326     "\00asm" "\01\00\00\00"
327     "\00\04"                       ;; custom section
328     "\03\e0\9f\bf"                 ;; "\e0\9f\bf"
329   )
330   "malformed UTF-8 encoding"
331 )
332
333 ;; first byte after (0xe0) 3-byte prefix not a continuation byte
334 (assert_malformed
335   (module binary
336     "\00asm" "\01\00\00\00"
337     "\00\04"                       ;; custom section
338     "\03\e0\c0\a0"                 ;; "\e0\c0\a0"
339   )
340   "malformed UTF-8 encoding"
341 )
342
343 ;; first byte after (0xe0) 3-byte prefix not a continuation byte
344 (assert_malformed
345   (module binary
346     "\00asm" "\01\00\00\00"
347     "\00\04"                       ;; custom section
348     "\03\e0\fd\a0"                 ;; "\e0\fd\a0"
349   )
350   "malformed UTF-8 encoding"
351 )
352
353 ;; first byte after (first normal) 3-byte prefix not a continuation byte
354 (assert_malformed
355   (module binary
356     "\00asm" "\01\00\00\00"
357     "\00\04"                       ;; custom section
358     "\03\e1\00\80"                 ;; "\e1\00\80"
359   )
360   "malformed UTF-8 encoding"
361 )
362
363 ;; first byte after (first normal) 3-byte prefix not a continuation byte
364 (assert_malformed
365   (module binary
366     "\00asm" "\01\00\00\00"
367     "\00\04"                       ;; custom section
368     "\03\e1\7f\80"                 ;; "\e1\7f\80"
369   )
370   "malformed UTF-8 encoding"
371 )
372
373 ;; first byte after (first normal) 3-byte prefix not a continuation byte
374 (assert_malformed
375   (module binary
376     "\00asm" "\01\00\00\00"
377     "\00\04"                       ;; custom section
378     "\03\e1\c0\80"                 ;; "\e1\c0\80"
379   )
380   "malformed UTF-8 encoding"
381 )
382
383 ;; first byte after (first normal) 3-byte prefix not a continuation byte
384 (assert_malformed
385   (module binary
386     "\00asm" "\01\00\00\00"
387     "\00\04"                       ;; custom section
388     "\03\e1\fd\80"                 ;; "\e1\fd\80"
389   )
390   "malformed UTF-8 encoding"
391 )
392
393 ;; first byte after (normal) 3-byte prefix not a continuation byte
394 (assert_malformed
395   (module binary
396     "\00asm" "\01\00\00\00"
397     "\00\04"                       ;; custom section
398     "\03\ec\00\80"                 ;; "\ec\00\80"
399   )
400   "malformed UTF-8 encoding"
401 )
402
403 ;; first byte after (normal) 3-byte prefix not a continuation byte
404 (assert_malformed
405   (module binary
406     "\00asm" "\01\00\00\00"
407     "\00\04"                       ;; custom section
408     "\03\ec\7f\80"                 ;; "\ec\7f\80"
409   )
410   "malformed UTF-8 encoding"
411 )
412
413 ;; first byte after (normal) 3-byte prefix not a continuation byte
414 (assert_malformed
415   (module binary
416     "\00asm" "\01\00\00\00"
417     "\00\04"                       ;; custom section
418     "\03\ec\c0\80"                 ;; "\ec\c0\80"
419   )
420   "malformed UTF-8 encoding"
421 )
422
423 ;; first byte after (normal) 3-byte prefix not a continuation byte
424 (assert_malformed
425   (module binary
426     "\00asm" "\01\00\00\00"
427     "\00\04"                       ;; custom section
428     "\03\ec\fd\80"                 ;; "\ec\fd\80"
429   )
430   "malformed UTF-8 encoding"
431 )
432
433 ;; first byte after (0xed) 3-byte prefix not a continuation byte
434 (assert_malformed
435   (module binary
436     "\00asm" "\01\00\00\00"
437     "\00\04"                       ;; custom section
438     "\03\ed\00\80"                 ;; "\ed\00\80"
439   )
440   "malformed UTF-8 encoding"
441 )
442
443 ;; first byte after (0xed) 3-byte prefix not a continuation byte
444 (assert_malformed
445   (module binary
446     "\00asm" "\01\00\00\00"
447     "\00\04"                       ;; custom section
448     "\03\ed\7f\80"                 ;; "\ed\7f\80"
449   )
450   "malformed UTF-8 encoding"
451 )
452
453 ;; byte sequence reserved for UTF-16 surrogate half
454 (assert_malformed
455   (module binary
456     "\00asm" "\01\00\00\00"
457     "\00\04"                       ;; custom section
458     "\03\ed\a0\80"                 ;; "\ed\a0\80"
459   )
460   "malformed UTF-8 encoding"
461 )
462
463 ;; byte sequence reserved for UTF-16 surrogate half
464 (assert_malformed
465   (module binary
466     "\00asm" "\01\00\00\00"
467     "\00\04"                       ;; custom section
468     "\03\ed\a0\bf"                 ;; "\ed\a0\bf"
469   )
470   "malformed UTF-8 encoding"
471 )
472
473 ;; byte sequence reserved for UTF-16 surrogate half
474 (assert_malformed
475   (module binary
476     "\00asm" "\01\00\00\00"
477     "\00\04"                       ;; custom section
478     "\03\ed\bf\80"                 ;; "\ed\bf\80"
479   )
480   "malformed UTF-8 encoding"
481 )
482
483 ;; byte sequence reserved for UTF-16 surrogate half
484 (assert_malformed
485   (module binary
486     "\00asm" "\01\00\00\00"
487     "\00\04"                       ;; custom section
488     "\03\ed\bf\bf"                 ;; "\ed\bf\bf"
489   )
490   "malformed UTF-8 encoding"
491 )
492
493 ;; first byte after (0xed) 3-byte prefix not a continuation byte
494 (assert_malformed
495   (module binary
496     "\00asm" "\01\00\00\00"
497     "\00\04"                       ;; custom section
498     "\03\ed\c0\80"                 ;; "\ed\c0\80"
499   )
500   "malformed UTF-8 encoding"
501 )
502
503 ;; first byte after (0xed) 3-byte prefix not a continuation byte
504 (assert_malformed
505   (module binary
506     "\00asm" "\01\00\00\00"
507     "\00\04"                       ;; custom section
508     "\03\ed\fd\80"                 ;; "\ed\fd\80"
509   )
510   "malformed UTF-8 encoding"
511 )
512
513 ;; first byte after (normal) 3-byte prefix not a continuation byte
514 (assert_malformed
515   (module binary
516     "\00asm" "\01\00\00\00"
517     "\00\04"                       ;; custom section
518     "\03\ee\00\80"                 ;; "\ee\00\80"
519   )
520   "malformed UTF-8 encoding"
521 )
522
523 ;; first byte after (normal) 3-byte prefix not a continuation byte
524 (assert_malformed
525   (module binary
526     "\00asm" "\01\00\00\00"
527     "\00\04"                       ;; custom section
528     "\03\ee\7f\80"                 ;; "\ee\7f\80"
529   )
530   "malformed UTF-8 encoding"
531 )
532
533 ;; first byte after (normal) 3-byte prefix not a continuation byte
534 (assert_malformed
535   (module binary
536     "\00asm" "\01\00\00\00"
537     "\00\04"                       ;; custom section
538     "\03\ee\c0\80"                 ;; "\ee\c0\80"
539   )
540   "malformed UTF-8 encoding"
541 )
542
543 ;; first byte after (normal) 3-byte prefix not a continuation byte
544 (assert_malformed
545   (module binary
546     "\00asm" "\01\00\00\00"
547     "\00\04"                       ;; custom section
548     "\03\ee\fd\80"                 ;; "\ee\fd\80"
549   )
550   "malformed UTF-8 encoding"
551 )
552
553 ;; first byte after (last normal) 3-byte prefix not a continuation byte
554 (assert_malformed
555   (module binary
556     "\00asm" "\01\00\00\00"
557     "\00\04"                       ;; custom section
558     "\03\ef\00\80"                 ;; "\ef\00\80"
559   )
560   "malformed UTF-8 encoding"
561 )
562
563 ;; first byte after (last normal) 3-byte prefix not a continuation byte
564 (assert_malformed
565   (module binary
566     "\00asm" "\01\00\00\00"
567     "\00\04"                       ;; custom section
568     "\03\ef\7f\80"                 ;; "\ef\7f\80"
569   )
570   "malformed UTF-8 encoding"
571 )
572
573 ;; first byte after (last normal) 3-byte prefix not a continuation byte
574 (assert_malformed
575   (module binary
576     "\00asm" "\01\00\00\00"
577     "\00\04"                       ;; custom section
578     "\03\ef\c0\80"                 ;; "\ef\c0\80"
579   )
580   "malformed UTF-8 encoding"
581 )
582
583 ;; first byte after (last normal) 3-byte prefix not a continuation byte
584 (assert_malformed
585   (module binary
586     "\00asm" "\01\00\00\00"
587     "\00\04"                       ;; custom section
588     "\03\ef\fd\80"                 ;; "\ef\fd\80"
589   )
590   "malformed UTF-8 encoding"
591 )
592
593 ;;;; 3-byte sequence contents (third byte)
594
595 ;; second byte after (0xe0) 3-byte prefix not a continuation byte
596 (assert_malformed
597   (module binary
598     "\00asm" "\01\00\00\00"
599     "\00\04"                       ;; custom section
600     "\03\e0\a0\00"                 ;; "\e0\a0\00"
601   )
602   "malformed UTF-8 encoding"
603 )
604
605 ;; second byte after (0xe0) 3-byte prefix not a continuation byte
606 (assert_malformed
607   (module binary
608     "\00asm" "\01\00\00\00"
609     "\00\04"                       ;; custom section
610     "\03\e0\a0\7f"                 ;; "\e0\a0\7f"
611   )
612   "malformed UTF-8 encoding"
613 )
614
615 ;; second byte after (0xe0) 3-byte prefix not a continuation byte
616 (assert_malformed
617   (module binary
618     "\00asm" "\01\00\00\00"
619     "\00\04"                       ;; custom section
620     "\03\e0\a0\c0"                 ;; "\e0\a0\c0"
621   )
622   "malformed UTF-8 encoding"
623 )
624
625 ;; second byte after (0xe0) 3-byte prefix not a continuation byte
626 (assert_malformed
627   (module binary
628     "\00asm" "\01\00\00\00"
629     "\00\04"                       ;; custom section
630     "\03\e0\a0\fd"                 ;; "\e0\a0\fd"
631   )
632   "malformed UTF-8 encoding"
633 )
634
635 ;; second byte after (first normal) 3-byte prefix not a continuation byte
636 (assert_malformed
637   (module binary
638     "\00asm" "\01\00\00\00"
639     "\00\04"                       ;; custom section
640     "\03\e1\80\00"                 ;; "\e1\80\00"
641   )
642   "malformed UTF-8 encoding"
643 )
644
645 ;; second byte after (first normal) 3-byte prefix not a continuation byte
646 (assert_malformed
647   (module binary
648     "\00asm" "\01\00\00\00"
649     "\00\04"                       ;; custom section
650     "\03\e1\80\7f"                 ;; "\e1\80\7f"
651   )
652   "malformed UTF-8 encoding"
653 )
654
655 ;; second byte after (first normal) 3-byte prefix not a continuation byte
656 (assert_malformed
657   (module binary
658     "\00asm" "\01\00\00\00"
659     "\00\04"                       ;; custom section
660     "\03\e1\80\c0"                 ;; "\e1\80\c0"
661   )
662   "malformed UTF-8 encoding"
663 )
664
665 ;; second byte after (first normal) 3-byte prefix not a continuation byte
666 (assert_malformed
667   (module binary
668     "\00asm" "\01\00\00\00"
669     "\00\04"                       ;; custom section
670     "\03\e1\80\fd"                 ;; "\e1\80\fd"
671   )
672   "malformed UTF-8 encoding"
673 )
674
675 ;; second byte after (normal) 3-byte prefix not a continuation byte
676 (assert_malformed
677   (module binary
678     "\00asm" "\01\00\00\00"
679     "\00\04"                       ;; custom section
680     "\03\ec\80\00"                 ;; "\ec\80\00"
681   )
682   "malformed UTF-8 encoding"
683 )
684
685 ;; second byte after (normal) 3-byte prefix not a continuation byte
686 (assert_malformed
687   (module binary
688     "\00asm" "\01\00\00\00"
689     "\00\04"                       ;; custom section
690     "\03\ec\80\7f"                 ;; "\ec\80\7f"
691   )
692   "malformed UTF-8 encoding"
693 )
694
695 ;; second byte after (normal) 3-byte prefix not a continuation byte
696 (assert_malformed
697   (module binary
698     "\00asm" "\01\00\00\00"
699     "\00\04"                       ;; custom section
700     "\03\ec\80\c0"                 ;; "\ec\80\c0"
701   )
702   "malformed UTF-8 encoding"
703 )
704
705 ;; second byte after (normal) 3-byte prefix not a continuation byte
706 (assert_malformed
707   (module binary
708     "\00asm" "\01\00\00\00"
709     "\00\04"                       ;; custom section
710     "\03\ec\80\fd"                 ;; "\ec\80\fd"
711   )
712   "malformed UTF-8 encoding"
713 )
714
715 ;; second byte after (0xed) 3-byte prefix not a continuation byte
716 (assert_malformed
717   (module binary
718     "\00asm" "\01\00\00\00"
719     "\00\04"                       ;; custom section
720     "\03\ed\80\00"                 ;; "\ed\80\00"
721   )
722   "malformed UTF-8 encoding"
723 )
724
725 ;; second byte after (0xed) 3-byte prefix not a continuation byte
726 (assert_malformed
727   (module binary
728     "\00asm" "\01\00\00\00"
729     "\00\04"                       ;; custom section
730     "\03\ed\80\7f"                 ;; "\ed\80\7f"
731   )
732   "malformed UTF-8 encoding"
733 )
734
735 ;; second byte after (0xed) 3-byte prefix not a continuation byte
736 (assert_malformed
737   (module binary
738     "\00asm" "\01\00\00\00"
739     "\00\04"                       ;; custom section
740     "\03\ed\80\c0"                 ;; "\ed\80\c0"
741   )
742   "malformed UTF-8 encoding"
743 )
744
745 ;; second byte after (0xed) 3-byte prefix not a continuation byte
746 (assert_malformed
747   (module binary
748     "\00asm" "\01\00\00\00"
749     "\00\04"                       ;; custom section
750     "\03\ed\80\fd"                 ;; "\ed\80\fd"
751   )
752   "malformed UTF-8 encoding"
753 )
754
755 ;; second byte after (normal) 3-byte prefix not a continuation byte
756 (assert_malformed
757   (module binary
758     "\00asm" "\01\00\00\00"
759     "\00\04"                       ;; custom section
760     "\03\ee\80\00"                 ;; "\ee\80\00"
761   )
762   "malformed UTF-8 encoding"
763 )
764
765 ;; second byte after (normal) 3-byte prefix not a continuation byte
766 (assert_malformed
767   (module binary
768     "\00asm" "\01\00\00\00"
769     "\00\04"                       ;; custom section
770     "\03\ee\80\7f"                 ;; "\ee\80\7f"
771   )
772   "malformed UTF-8 encoding"
773 )
774
775 ;; second byte after (normal) 3-byte prefix not a continuation byte
776 (assert_malformed
777   (module binary
778     "\00asm" "\01\00\00\00"
779     "\00\04"                       ;; custom section
780     "\03\ee\80\c0"                 ;; "\ee\80\c0"
781   )
782   "malformed UTF-8 encoding"
783 )
784
785 ;; second byte after (normal) 3-byte prefix not a continuation byte
786 (assert_malformed
787   (module binary
788     "\00asm" "\01\00\00\00"
789     "\00\04"                       ;; custom section
790     "\03\ee\80\fd"                 ;; "\ee\80\fd"
791   )
792   "malformed UTF-8 encoding"
793 )
794
795 ;; second byte after (last normal) 3-byte prefix not a continuation byte
796 (assert_malformed
797   (module binary
798     "\00asm" "\01\00\00\00"
799     "\00\04"                       ;; custom section
800     "\03\ef\80\00"                 ;; "\ef\80\00"
801   )
802   "malformed UTF-8 encoding"
803 )
804
805 ;; second byte after (last normal) 3-byte prefix not a continuation byte
806 (assert_malformed
807   (module binary
808     "\00asm" "\01\00\00\00"
809     "\00\04"                       ;; custom section
810     "\03\ef\80\7f"                 ;; "\ef\80\7f"
811   )
812   "malformed UTF-8 encoding"
813 )
814
815 ;; second byte after (last normal) 3-byte prefix not a continuation byte
816 (assert_malformed
817   (module binary
818     "\00asm" "\01\00\00\00"
819     "\00\04"                       ;; custom section
820     "\03\ef\80\c0"                 ;; "\ef\80\c0"
821   )
822   "malformed UTF-8 encoding"
823 )
824
825 ;; second byte after (last normal) 3-byte prefix not a continuation byte
826 (assert_malformed
827   (module binary
828     "\00asm" "\01\00\00\00"
829     "\00\04"                       ;; custom section
830     "\03\ef\80\fd"                 ;; "\ef\80\fd"
831   )
832   "malformed UTF-8 encoding"
833 )
834
835 ;;;; 4-byte sequences
836
837 ;; 4-byte sequence contains 5 bytes
838 (assert_malformed
839   (module binary
840     "\00asm" "\01\00\00\00"
841     "\00\06"                       ;; custom section
842     "\05\f1\80\80\80\80"           ;; "\f1\80\80\80\80"
843   )
844   "malformed UTF-8 encoding"
845 )
846
847 ;; 4-byte sequence contains 3 bytes at end of string
848 (assert_malformed
849   (module binary
850     "\00asm" "\01\00\00\00"
851     "\00\04"                       ;; custom section
852     "\03\f1\80\80"                 ;; "\f1\80\80"
853   )
854   "malformed UTF-8 encoding"
855 )
856
857 ;; 4-byte sequence contains 3 bytes
858 (assert_malformed
859   (module binary
860     "\00asm" "\01\00\00\00"
861     "\00\05"                       ;; custom section
862     "\04\f1\80\80\23"              ;; "\f1\80\80#"
863   )
864   "malformed UTF-8 encoding"
865 )
866
867 ;; 4-byte sequence contains 2 bytes at end of string
868 (assert_malformed
869   (module binary
870     "\00asm" "\01\00\00\00"
871     "\00\03"                       ;; custom section
872     "\02\f1\80"                    ;; "\f1\80"
873   )
874   "malformed UTF-8 encoding"
875 )
876
877 ;; 4-byte sequence contains 2 bytes
878 (assert_malformed
879   (module binary
880     "\00asm" "\01\00\00\00"
881     "\00\04"                       ;; custom section
882     "\03\f1\80\23"                 ;; "\f1\80#"
883   )
884   "malformed UTF-8 encoding"
885 )
886
887 ;; 4-byte sequence contains 1 byte at end of string
888 (assert_malformed
889   (module binary
890     "\00asm" "\01\00\00\00"
891     "\00\02"                       ;; custom section
892     "\01\f1"                       ;; "\f1"
893   )
894   "malformed UTF-8 encoding"
895 )
896
897 ;; 4-byte sequence contains 1 byte
898 (assert_malformed
899   (module binary
900     "\00asm" "\01\00\00\00"
901     "\00\03"                       ;; custom section
902     "\02\f1\23"                    ;; "\f1#"
903   )
904   "malformed UTF-8 encoding"
905 )
906
907 ;;;; 4-byte sequence contents
908
909 ;; first byte after (0xf0) 4-byte prefix not a continuation byte
910 (assert_malformed
911   (module binary
912     "\00asm" "\01\00\00\00"
913     "\00\05"                       ;; custom section
914     "\04\f0\00\90\90"              ;; "\f0\00\90\90"
915   )
916   "malformed UTF-8 encoding"
917 )
918
919 ;; first byte after (0xf0) 4-byte prefix not a continuation byte
920 (assert_malformed
921   (module binary
922     "\00asm" "\01\00\00\00"
923     "\00\05"                       ;; custom section
924     "\04\f0\7f\90\90"              ;; "\f0\7f\90\90"
925   )
926   "malformed UTF-8 encoding"
927 )
928
929 ;; overlong encoding after 0xf0 prefix
930 (assert_malformed
931   (module binary
932     "\00asm" "\01\00\00\00"
933     "\00\05"                       ;; custom section
934     "\04\f0\80\80\80"              ;; "\f0\80\80\80"
935   )
936   "malformed UTF-8 encoding"
937 )
938
939 ;; overlong encoding after 0xf0 prefix
940 (assert_malformed
941   (module binary
942     "\00asm" "\01\00\00\00"
943     "\00\05"                       ;; custom section
944     "\04\f0\80\90\90"              ;; "\f0\80\90\90"
945   )
946   "malformed UTF-8 encoding"
947 )
948
949 ;; overlong encoding after 0xf0 prefix
950 (assert_malformed
951   (module binary
952     "\00asm" "\01\00\00\00"
953     "\00\05"                       ;; custom section
954     "\04\f0\8f\90\90"              ;; "\f0\8f\90\90"
955   )
956   "malformed UTF-8 encoding"
957 )
958
959 ;; overlong encoding after 0xf0 prefix
960 (assert_malformed
961   (module binary
962     "\00asm" "\01\00\00\00"
963     "\00\05"                       ;; custom section
964     "\04\f0\8f\bf\bf"              ;; "\f0\8f\bf\bf"
965   )
966   "malformed UTF-8 encoding"
967 )
968
969 ;; first byte after (0xf0) 4-byte prefix not a continuation byte
970 (assert_malformed
971   (module binary
972     "\00asm" "\01\00\00\00"
973     "\00\05"                       ;; custom section
974     "\04\f0\c0\90\90"              ;; "\f0\c0\90\90"
975   )
976   "malformed UTF-8 encoding"
977 )
978
979 ;; first byte after (0xf0) 4-byte prefix not a continuation byte
980 (assert_malformed
981   (module binary
982     "\00asm" "\01\00\00\00"
983     "\00\05"                       ;; custom section
984     "\04\f0\fd\90\90"              ;; "\f0\fd\90\90"
985   )
986   "malformed UTF-8 encoding"
987 )
988
989 ;; first byte after (first normal) 4-byte prefix not a continuation byte
990 (assert_malformed
991   (module binary
992     "\00asm" "\01\00\00\00"
993     "\00\05"                       ;; custom section
994     "\04\f1\00\80\80"              ;; "\f1\00\80\80"
995   )
996   "malformed UTF-8 encoding"
997 )
998
999 ;; first byte after (first normal) 4-byte prefix not a continuation byte
1000 (assert_malformed
1001   (module binary
1002     "\00asm" "\01\00\00\00"
1003     "\00\05"                       ;; custom section
1004     "\04\f1\7f\80\80"              ;; "\f1\7f\80\80"
1005   )
1006   "malformed UTF-8 encoding"
1007 )
1008
1009 ;; first byte after (first normal) 4-byte prefix not a continuation byte
1010 (assert_malformed
1011   (module binary
1012     "\00asm" "\01\00\00\00"
1013     "\00\05"                       ;; custom section
1014     "\04\f1\c0\80\80"              ;; "\f1\c0\80\80"
1015   )
1016   "malformed UTF-8 encoding"
1017 )
1018
1019 ;; first byte after (first normal) 4-byte prefix not a continuation byte
1020 (assert_malformed
1021   (module binary
1022     "\00asm" "\01\00\00\00"
1023     "\00\05"                       ;; custom section
1024     "\04\f1\fd\80\80"              ;; "\f1\fd\80\80"
1025   )
1026   "malformed UTF-8 encoding"
1027 )
1028
1029 ;; first byte after (last normal) 4-byte prefix not a continuation byte
1030 (assert_malformed
1031   (module binary
1032     "\00asm" "\01\00\00\00"
1033     "\00\05"                       ;; custom section
1034     "\04\f3\00\80\80"              ;; "\f3\00\80\80"
1035   )
1036   "malformed UTF-8 encoding"
1037 )
1038
1039 ;; first byte after (last normal) 4-byte prefix not a continuation byte
1040 (assert_malformed
1041   (module binary
1042     "\00asm" "\01\00\00\00"
1043     "\00\05"                       ;; custom section
1044     "\04\f3\7f\80\80"              ;; "\f3\7f\80\80"
1045   )
1046   "malformed UTF-8 encoding"
1047 )
1048
1049 ;; first byte after (last normal) 4-byte prefix not a continuation byte
1050 (assert_malformed
1051   (module binary
1052     "\00asm" "\01\00\00\00"
1053     "\00\05"                       ;; custom section
1054     "\04\f3\c0\80\80"              ;; "\f3\c0\80\80"
1055   )
1056   "malformed UTF-8 encoding"
1057 )
1058
1059 ;; first byte after (last normal) 4-byte prefix not a continuation byte
1060 (assert_malformed
1061   (module binary
1062     "\00asm" "\01\00\00\00"
1063     "\00\05"                       ;; custom section
1064     "\04\f3\fd\80\80"              ;; "\f3\fd\80\80"
1065   )
1066   "malformed UTF-8 encoding"
1067 )
1068
1069 ;; first byte after (0xf4) 4-byte prefix not a continuation byte
1070 (assert_malformed
1071   (module binary
1072     "\00asm" "\01\00\00\00"
1073     "\00\05"                       ;; custom section
1074     "\04\f4\00\80\80"              ;; "\f4\00\80\80"
1075   )
1076   "malformed UTF-8 encoding"
1077 )
1078
1079 ;; first byte after (0xf4) 4-byte prefix not a continuation byte
1080 (assert_malformed
1081   (module binary
1082     "\00asm" "\01\00\00\00"
1083     "\00\05"                       ;; custom section
1084     "\04\f4\7f\80\80"              ;; "\f4\7f\80\80"
1085   )
1086   "malformed UTF-8 encoding"
1087 )
1088
1089 ;; (first) malformed code point
1090 (assert_malformed
1091   (module binary
1092     "\00asm" "\01\00\00\00"
1093     "\00\05"                       ;; custom section
1094     "\04\f4\90\80\80"              ;; "\f4\90\80\80"
1095   )
1096   "malformed UTF-8 encoding"
1097 )
1098
1099 ;; malformed code point
1100 (assert_malformed
1101   (module binary
1102     "\00asm" "\01\00\00\00"
1103     "\00\05"                       ;; custom section
1104     "\04\f4\bf\80\80"              ;; "\f4\bf\80\80"
1105   )
1106   "malformed UTF-8 encoding"
1107 )
1108
1109 ;; first byte after (0xf4) 4-byte prefix not a continuation byte
1110 (assert_malformed
1111   (module binary
1112     "\00asm" "\01\00\00\00"
1113     "\00\05"                       ;; custom section
1114     "\04\f4\c0\80\80"              ;; "\f4\c0\80\80"
1115   )
1116   "malformed UTF-8 encoding"
1117 )
1118
1119 ;; first byte after (0xf4) 4-byte prefix not a continuation byte
1120 (assert_malformed
1121   (module binary
1122     "\00asm" "\01\00\00\00"
1123     "\00\05"                       ;; custom section
1124     "\04\f4\fd\80\80"              ;; "\f4\fd\80\80"
1125   )
1126   "malformed UTF-8 encoding"
1127 )
1128
1129 ;; (first) malformed 4-byte prefix
1130 (assert_malformed
1131   (module binary
1132     "\00asm" "\01\00\00\00"
1133     "\00\05"                       ;; custom section
1134     "\04\f5\80\80\80"              ;; "\f5\80\80\80"
1135   )
1136   "malformed UTF-8 encoding"
1137 )
1138
1139 ;; (last) malformed 4-byte prefix
1140 (assert_malformed
1141   (module binary
1142     "\00asm" "\01\00\00\00"
1143     "\00\05"                       ;; custom section
1144     "\04\f7\80\80\80"              ;; "\f7\80\80\80"
1145   )
1146   "malformed UTF-8 encoding"
1147 )
1148
1149 ;; (last) malformed 4-byte prefix
1150 (assert_malformed
1151   (module binary
1152     "\00asm" "\01\00\00\00"
1153     "\00\05"                       ;; custom section
1154     "\04\f7\bf\bf\bf"              ;; "\f7\bf\bf\bf"
1155   )
1156   "malformed UTF-8 encoding"
1157 )
1158
1159 ;;;; 4-byte sequence contents (third byte)
1160
1161 ;; second byte after (0xf0) 4-byte prefix not a continuation byte
1162 (assert_malformed
1163   (module binary
1164     "\00asm" "\01\00\00\00"
1165     "\00\05"                       ;; custom section
1166     "\04\f0\90\00\90"              ;; "\f0\90\00\90"
1167   )
1168   "malformed UTF-8 encoding"
1169 )
1170
1171 ;; second byte after (0xf0) 4-byte prefix not a continuation byte
1172 (assert_malformed
1173   (module binary
1174     "\00asm" "\01\00\00\00"
1175     "\00\05"                       ;; custom section
1176     "\04\f0\90\7f\90"              ;; "\f0\90\7f\90"
1177   )
1178   "malformed UTF-8 encoding"
1179 )
1180
1181 ;; second byte after (0xf0) 4-byte prefix not a continuation byte
1182 (assert_malformed
1183   (module binary
1184     "\00asm" "\01\00\00\00"
1185     "\00\05"                       ;; custom section
1186     "\04\f0\90\c0\90"              ;; "\f0\90\c0\90"
1187   )
1188   "malformed UTF-8 encoding"
1189 )
1190
1191 ;; second byte after (0xf0) 4-byte prefix not a continuation byte
1192 (assert_malformed
1193   (module binary
1194     "\00asm" "\01\00\00\00"
1195     "\00\05"                       ;; custom section
1196     "\04\f0\90\fd\90"              ;; "\f0\90\fd\90"
1197   )
1198   "malformed UTF-8 encoding"
1199 )
1200
1201 ;; second byte after (first normal) 4-byte prefix not a continuation byte
1202 (assert_malformed
1203   (module binary
1204     "\00asm" "\01\00\00\00"
1205     "\00\05"                       ;; custom section
1206     "\04\f1\80\00\80"              ;; "\f1\80\00\80"
1207   )
1208   "malformed UTF-8 encoding"
1209 )
1210
1211 ;; second byte after (first normal) 4-byte prefix not a continuation byte
1212 (assert_malformed
1213   (module binary
1214     "\00asm" "\01\00\00\00"
1215     "\00\05"                       ;; custom section
1216     "\04\f1\80\7f\80"              ;; "\f1\80\7f\80"
1217   )
1218   "malformed UTF-8 encoding"
1219 )
1220
1221 ;; second byte after (first normal) 4-byte prefix not a continuation byte
1222 (assert_malformed
1223   (module binary
1224     "\00asm" "\01\00\00\00"
1225     "\00\05"                       ;; custom section
1226     "\04\f1\80\c0\80"              ;; "\f1\80\c0\80"
1227   )
1228   "malformed UTF-8 encoding"
1229 )
1230
1231 ;; second byte after (first normal) 4-byte prefix not a continuation byte
1232 (assert_malformed
1233   (module binary
1234     "\00asm" "\01\00\00\00"
1235     "\00\05"                       ;; custom section
1236     "\04\f1\80\fd\80"              ;; "\f1\80\fd\80"
1237   )
1238   "malformed UTF-8 encoding"
1239 )
1240
1241 ;; second byte after (last normal) 4-byte prefix not a continuation byte
1242 (assert_malformed
1243   (module binary
1244     "\00asm" "\01\00\00\00"
1245     "\00\05"                       ;; custom section
1246     "\04\f3\80\00\80"              ;; "\f3\80\00\80"
1247   )
1248   "malformed UTF-8 encoding"
1249 )
1250
1251 ;; second byte after (last normal) 4-byte prefix not a continuation byte
1252 (assert_malformed
1253   (module binary
1254     "\00asm" "\01\00\00\00"
1255     "\00\05"                       ;; custom section
1256     "\04\f3\80\7f\80"              ;; "\f3\80\7f\80"
1257   )
1258   "malformed UTF-8 encoding"
1259 )
1260
1261 ;; second byte after (last normal) 4-byte prefix not a continuation byte
1262 (assert_malformed
1263   (module binary
1264     "\00asm" "\01\00\00\00"
1265     "\00\05"                       ;; custom section
1266     "\04\f3\80\c0\80"              ;; "\f3\80\c0\80"
1267   )
1268   "malformed UTF-8 encoding"
1269 )
1270
1271 ;; second byte after (last normal) 4-byte prefix not a continuation byte
1272 (assert_malformed
1273   (module binary
1274     "\00asm" "\01\00\00\00"
1275     "\00\05"                       ;; custom section
1276     "\04\f3\80\fd\80"              ;; "\f3\80\fd\80"
1277   )
1278   "malformed UTF-8 encoding"
1279 )
1280
1281 ;; second byte after (0xf4) 4-byte prefix not a continuation byte
1282 (assert_malformed
1283   (module binary
1284     "\00asm" "\01\00\00\00"
1285     "\00\05"                       ;; custom section
1286     "\04\f4\80\00\80"              ;; "\f4\80\00\80"
1287   )
1288   "malformed UTF-8 encoding"
1289 )
1290
1291 ;; second byte after (0xf4) 4-byte prefix not a continuation byte
1292 (assert_malformed
1293   (module binary
1294     "\00asm" "\01\00\00\00"
1295     "\00\05"                       ;; custom section
1296     "\04\f4\80\7f\80"              ;; "\f4\80\7f\80"
1297   )
1298   "malformed UTF-8 encoding"
1299 )
1300
1301 ;; second byte after (0xf4) 4-byte prefix not a continuation byte
1302 (assert_malformed
1303   (module binary
1304     "\00asm" "\01\00\00\00"
1305     "\00\05"                       ;; custom section
1306     "\04\f4\80\c0\80"              ;; "\f4\80\c0\80"
1307   )
1308   "malformed UTF-8 encoding"
1309 )
1310
1311 ;; second byte after (0xf4) 4-byte prefix not a continuation byte
1312 (assert_malformed
1313   (module binary
1314     "\00asm" "\01\00\00\00"
1315     "\00\05"                       ;; custom section
1316     "\04\f4\80\fd\80"              ;; "\f4\80\fd\80"
1317   )
1318   "malformed UTF-8 encoding"
1319 )
1320
1321 ;;;; 4-byte sequence contents (fourth byte)
1322
1323 ;; third byte after (0xf0) 4-byte prefix not a continuation byte
1324 (assert_malformed
1325   (module binary
1326     "\00asm" "\01\00\00\00"
1327     "\00\05"                       ;; custom section
1328     "\04\f0\90\90\00"              ;; "\f0\90\90\00"
1329   )
1330   "malformed UTF-8 encoding"
1331 )
1332
1333 ;; third byte after (0xf0) 4-byte prefix not a continuation byte
1334 (assert_malformed
1335   (module binary
1336     "\00asm" "\01\00\00\00"
1337     "\00\05"                       ;; custom section
1338     "\04\f0\90\90\7f"              ;; "\f0\90\90\7f"
1339   )
1340   "malformed UTF-8 encoding"
1341 )
1342
1343 ;; third byte after (0xf0) 4-byte prefix not a continuation byte
1344 (assert_malformed
1345   (module binary
1346     "\00asm" "\01\00\00\00"
1347     "\00\05"                       ;; custom section
1348     "\04\f0\90\90\c0"              ;; "\f0\90\90\c0"
1349   )
1350   "malformed UTF-8 encoding"
1351 )
1352
1353 ;; third byte after (0xf0) 4-byte prefix not a continuation byte
1354 (assert_malformed
1355   (module binary
1356     "\00asm" "\01\00\00\00"
1357     "\00\05"                       ;; custom section
1358     "\04\f0\90\90\fd"              ;; "\f0\90\90\fd"
1359   )
1360   "malformed UTF-8 encoding"
1361 )
1362
1363 ;; third byte after (first normal) 4-byte prefix not a continuation byte
1364 (assert_malformed
1365   (module binary
1366     "\00asm" "\01\00\00\00"
1367     "\00\05"                       ;; custom section
1368     "\04\f1\80\80\00"              ;; "\f1\80\80\00"
1369   )
1370   "malformed UTF-8 encoding"
1371 )
1372
1373 ;; third byte after (first normal) 4-byte prefix not a continuation byte
1374 (assert_malformed
1375   (module binary
1376     "\00asm" "\01\00\00\00"
1377     "\00\05"                       ;; custom section
1378     "\04\f1\80\80\7f"              ;; "\f1\80\80\7f"
1379   )
1380   "malformed UTF-8 encoding"
1381 )
1382
1383 ;; third byte after (first normal) 4-byte prefix not a continuation byte
1384 (assert_malformed
1385   (module binary
1386     "\00asm" "\01\00\00\00"
1387     "\00\05"                       ;; custom section
1388     "\04\f1\80\80\c0"              ;; "\f1\80\80\c0"
1389   )
1390   "malformed UTF-8 encoding"
1391 )
1392
1393 ;; third byte after (first normal) 4-byte prefix not a continuation byte
1394 (assert_malformed
1395   (module binary
1396     "\00asm" "\01\00\00\00"
1397     "\00\05"                       ;; custom section
1398     "\04\f1\80\80\fd"              ;; "\f1\80\80\fd"
1399   )
1400   "malformed UTF-8 encoding"
1401 )
1402
1403 ;; third byte after (last normal) 4-byte prefix not a continuation byte
1404 (assert_malformed
1405   (module binary
1406     "\00asm" "\01\00\00\00"
1407     "\00\05"                       ;; custom section
1408     "\04\f3\80\80\00"              ;; "\f3\80\80\00"
1409   )
1410   "malformed UTF-8 encoding"
1411 )
1412
1413 ;; third byte after (last normal) 4-byte prefix not a continuation byte
1414 (assert_malformed
1415   (module binary
1416     "\00asm" "\01\00\00\00"
1417     "\00\05"                       ;; custom section
1418     "\04\f3\80\80\7f"              ;; "\f3\80\80\7f"
1419   )
1420   "malformed UTF-8 encoding"
1421 )
1422
1423 ;; third byte after (last normal) 4-byte prefix not a continuation byte
1424 (assert_malformed
1425   (module binary
1426     "\00asm" "\01\00\00\00"
1427     "\00\05"                       ;; custom section
1428     "\04\f3\80\80\c0"              ;; "\f3\80\80\c0"
1429   )
1430   "malformed UTF-8 encoding"
1431 )
1432
1433 ;; third byte after (last normal) 4-byte prefix not a continuation byte
1434 (assert_malformed
1435   (module binary
1436     "\00asm" "\01\00\00\00"
1437     "\00\05"                       ;; custom section
1438     "\04\f3\80\80\fd"              ;; "\f3\80\80\fd"
1439   )
1440   "malformed UTF-8 encoding"
1441 )
1442
1443 ;; third byte after (0xf4) 4-byte prefix not a continuation byte
1444 (assert_malformed
1445   (module binary
1446     "\00asm" "\01\00\00\00"
1447     "\00\05"                       ;; custom section
1448     "\04\f4\80\80\00"              ;; "\f4\80\80\00"
1449   )
1450   "malformed UTF-8 encoding"
1451 )
1452
1453 ;; third byte after (0xf4) 4-byte prefix not a continuation byte
1454 (assert_malformed
1455   (module binary
1456     "\00asm" "\01\00\00\00"
1457     "\00\05"                       ;; custom section
1458     "\04\f4\80\80\7f"              ;; "\f4\80\80\7f"
1459   )
1460   "malformed UTF-8 encoding"
1461 )
1462
1463 ;; third byte after (0xf4) 4-byte prefix not a continuation byte
1464 (assert_malformed
1465   (module binary
1466     "\00asm" "\01\00\00\00"
1467     "\00\05"                       ;; custom section
1468     "\04\f4\80\80\c0"              ;; "\f4\80\80\c0"
1469   )
1470   "malformed UTF-8 encoding"
1471 )
1472
1473 ;; third byte after (0xf4) 4-byte prefix not a continuation byte
1474 (assert_malformed
1475   (module binary
1476     "\00asm" "\01\00\00\00"
1477     "\00\05"                       ;; custom section
1478     "\04\f4\80\80\fd"              ;; "\f4\80\80\fd"
1479   )
1480   "malformed UTF-8 encoding"
1481 )
1482
1483 ;;;; 5-byte sequences
1484
1485 ;; 5-byte sequence contains 6 bytes
1486 (assert_malformed
1487   (module binary
1488     "\00asm" "\01\00\00\00"
1489     "\00\07"                       ;; custom section
1490     "\06\f8\80\80\80\80\80"        ;; "\f8\80\80\80\80\80"
1491   )
1492   "malformed UTF-8 encoding"
1493 )
1494
1495 ;; 5-byte sequence contains 4 bytes at end of string
1496 (assert_malformed
1497   (module binary
1498     "\00asm" "\01\00\00\00"
1499     "\00\05"                       ;; custom section
1500     "\04\f8\80\80\80"              ;; "\f8\80\80\80"
1501   )
1502   "malformed UTF-8 encoding"
1503 )
1504
1505 ;; 5-byte sequence contains 4 bytes
1506 (assert_malformed
1507   (module binary
1508     "\00asm" "\01\00\00\00"
1509     "\00\06"                       ;; custom section
1510     "\05\f8\80\80\80\23"           ;; "\f8\80\80\80#"
1511   )
1512   "malformed UTF-8 encoding"
1513 )
1514
1515 ;; 5-byte sequence contains 3 bytes at end of string
1516 (assert_malformed
1517   (module binary
1518     "\00asm" "\01\00\00\00"
1519     "\00\04"                       ;; custom section
1520     "\03\f8\80\80"                 ;; "\f8\80\80"
1521   )
1522   "malformed UTF-8 encoding"
1523 )
1524
1525 ;; 5-byte sequence contains 3 bytes
1526 (assert_malformed
1527   (module binary
1528     "\00asm" "\01\00\00\00"
1529     "\00\05"                       ;; custom section
1530     "\04\f8\80\80\23"              ;; "\f8\80\80#"
1531   )
1532   "malformed UTF-8 encoding"
1533 )
1534
1535 ;; 5-byte sequence contains 2 bytes at end of string
1536 (assert_malformed
1537   (module binary
1538     "\00asm" "\01\00\00\00"
1539     "\00\03"                       ;; custom section
1540     "\02\f8\80"                    ;; "\f8\80"
1541   )
1542   "malformed UTF-8 encoding"
1543 )
1544
1545 ;; 5-byte sequence contains 2 bytes
1546 (assert_malformed
1547   (module binary
1548     "\00asm" "\01\00\00\00"
1549     "\00\04"                       ;; custom section
1550     "\03\f8\80\23"                 ;; "\f8\80#"
1551   )
1552   "malformed UTF-8 encoding"
1553 )
1554
1555 ;; 5-byte sequence contains 1 byte at end of string
1556 (assert_malformed
1557   (module binary
1558     "\00asm" "\01\00\00\00"
1559     "\00\02"                       ;; custom section
1560     "\01\f8"                       ;; "\f8"
1561   )
1562   "malformed UTF-8 encoding"
1563 )
1564
1565 ;; 5-byte sequence contains 1 byte
1566 (assert_malformed
1567   (module binary
1568     "\00asm" "\01\00\00\00"
1569     "\00\03"                       ;; custom section
1570     "\02\f8\23"                    ;; "\f8#"
1571   )
1572   "malformed UTF-8 encoding"
1573 )
1574
1575 ;;;; 5-byte sequence contents
1576
1577 ;; (first) malformed 5-byte prefix
1578 (assert_malformed
1579   (module binary
1580     "\00asm" "\01\00\00\00"
1581     "\00\06"                       ;; custom section
1582     "\05\f8\80\80\80\80"           ;; "\f8\80\80\80\80"
1583   )
1584   "malformed UTF-8 encoding"
1585 )
1586
1587 ;; (last) malformed 5-byte prefix
1588 (assert_malformed
1589   (module binary
1590     "\00asm" "\01\00\00\00"
1591     "\00\06"                       ;; custom section
1592     "\05\fb\bf\bf\bf\bf"           ;; "\fb\bf\bf\bf\bf"
1593   )
1594   "malformed UTF-8 encoding"
1595 )
1596
1597 ;;;; 6-byte sequences
1598
1599 ;; 6-byte sequence contains 7 bytes
1600 (assert_malformed
1601   (module binary
1602     "\00asm" "\01\00\00\00"
1603     "\00\08"                       ;; custom section
1604     "\07\fc\80\80\80\80\80\80"     ;; "\fc\80\80\80\80\80\80"
1605   )
1606   "malformed UTF-8 encoding"
1607 )
1608
1609 ;; 6-byte sequence contains 5 bytes at end of string
1610 (assert_malformed
1611   (module binary
1612     "\00asm" "\01\00\00\00"
1613     "\00\06"                       ;; custom section
1614     "\05\fc\80\80\80\80"           ;; "\fc\80\80\80\80"
1615   )
1616   "malformed UTF-8 encoding"
1617 )
1618
1619 ;; 6-byte sequence contains 5 bytes
1620 (assert_malformed
1621   (module binary
1622     "\00asm" "\01\00\00\00"
1623     "\00\07"                       ;; custom section
1624     "\06\fc\80\80\80\80\23"        ;; "\fc\80\80\80\80#"
1625   )
1626   "malformed UTF-8 encoding"
1627 )
1628
1629 ;; 6-byte sequence contains 4 bytes at end of string
1630 (assert_malformed
1631   (module binary
1632     "\00asm" "\01\00\00\00"
1633     "\00\05"                       ;; custom section
1634     "\04\fc\80\80\80"              ;; "\fc\80\80\80"
1635   )
1636   "malformed UTF-8 encoding"
1637 )
1638
1639 ;; 6-byte sequence contains 4 bytes
1640 (assert_malformed
1641   (module binary
1642     "\00asm" "\01\00\00\00"
1643     "\00\06"                       ;; custom section
1644     "\05\fc\80\80\80\23"           ;; "\fc\80\80\80#"
1645   )
1646   "malformed UTF-8 encoding"
1647 )
1648
1649 ;; 6-byte sequence contains 3 bytes at end of string
1650 (assert_malformed
1651   (module binary
1652     "\00asm" "\01\00\00\00"
1653     "\00\04"                       ;; custom section
1654     "\03\fc\80\80"                 ;; "\fc\80\80"
1655   )
1656   "malformed UTF-8 encoding"
1657 )
1658
1659 ;; 6-byte sequence contains 3 bytes
1660 (assert_malformed
1661   (module binary
1662     "\00asm" "\01\00\00\00"
1663     "\00\05"                       ;; custom section
1664     "\04\fc\80\80\23"              ;; "\fc\80\80#"
1665   )
1666   "malformed UTF-8 encoding"
1667 )
1668
1669 ;; 6-byte sequence contains 2 bytes at end of string
1670 (assert_malformed
1671   (module binary
1672     "\00asm" "\01\00\00\00"
1673     "\00\03"                       ;; custom section
1674     "\02\fc\80"                    ;; "\fc\80"
1675   )
1676   "malformed UTF-8 encoding"
1677 )
1678
1679 ;; 6-byte sequence contains 2 bytes
1680 (assert_malformed
1681   (module binary
1682     "\00asm" "\01\00\00\00"
1683     "\00\04"                       ;; custom section
1684     "\03\fc\80\23"                 ;; "\fc\80#"
1685   )
1686   "malformed UTF-8 encoding"
1687 )
1688
1689 ;; 6-byte sequence contains 1 byte at end of string
1690 (assert_malformed
1691   (module binary
1692     "\00asm" "\01\00\00\00"
1693     "\00\02"                       ;; custom section
1694     "\01\fc"                       ;; "\fc"
1695   )
1696   "malformed UTF-8 encoding"
1697 )
1698
1699 ;; 6-byte sequence contains 1 byte
1700 (assert_malformed
1701   (module binary
1702     "\00asm" "\01\00\00\00"
1703     "\00\03"                       ;; custom section
1704     "\02\fc\23"                    ;; "\fc#"
1705   )
1706   "malformed UTF-8 encoding"
1707 )
1708
1709 ;;;; 6-byte sequence contents
1710
1711 ;; (first) malformed 6-byte prefix
1712 (assert_malformed
1713   (module binary
1714     "\00asm" "\01\00\00\00"
1715     "\00\07"                       ;; custom section
1716     "\06\fc\80\80\80\80\80"        ;; "\fc\80\80\80\80\80"
1717   )
1718   "malformed UTF-8 encoding"
1719 )
1720
1721 ;; (last) malformed 6-byte prefix
1722 (assert_malformed
1723   (module binary
1724     "\00asm" "\01\00\00\00"
1725     "\00\07"                       ;; custom section
1726     "\06\fd\bf\bf\bf\bf\bf"        ;; "\fd\bf\bf\bf\bf\bf"
1727   )
1728   "malformed UTF-8 encoding"
1729 )
1730
1731 ;;;; Miscellaneous malformed bytes
1732
1733 ;; malformed byte
1734 (assert_malformed
1735   (module binary
1736     "\00asm" "\01\00\00\00"
1737     "\00\02"                       ;; custom section
1738     "\01\fe"                       ;; "\fe"
1739   )
1740   "malformed UTF-8 encoding"
1741 )
1742
1743 ;; malformed byte
1744 (assert_malformed
1745   (module binary
1746     "\00asm" "\01\00\00\00"
1747     "\00\02"                       ;; custom section
1748     "\01\ff"                       ;; "\ff"
1749   )
1750   "malformed UTF-8 encoding"
1751 )
1752
1753 ;; UTF-16BE BOM
1754 (assert_malformed
1755   (module binary
1756     "\00asm" "\01\00\00\00"
1757     "\00\03"                       ;; custom section
1758     "\02\fe\ff"                    ;; "\fe\ff"
1759   )
1760   "malformed UTF-8 encoding"
1761 )
1762
1763 ;; UTF-32BE BOM
1764 (assert_malformed
1765   (module binary
1766     "\00asm" "\01\00\00\00"
1767     "\00\05"                       ;; custom section
1768     "\04\00\00\fe\ff"              ;; "\00\00\fe\ff"
1769   )
1770   "malformed UTF-8 encoding"
1771 )
1772
1773 ;; UTF-16LE BOM
1774 (assert_malformed
1775   (module binary
1776     "\00asm" "\01\00\00\00"
1777     "\00\03"                       ;; custom section
1778     "\02\ff\fe"                    ;; "\ff\fe"
1779   )
1780   "malformed UTF-8 encoding"
1781 )
1782
1783 ;; UTF-32LE BOM
1784 (assert_malformed
1785   (module binary
1786     "\00asm" "\01\00\00\00"
1787     "\00\05"                       ;; custom section
1788     "\04\ff\fe\00\00"              ;; "\ff\fe\00\00"
1789   )
1790   "malformed UTF-8 encoding"
1791 )
1792