Fossil SCM

Fix a potential endless loop in the markdown formatter. Enhance the fuzzer to run inputs on both the Fossil-wiki and the markdown formatters on each iteration.

drh 2019-09-23 21:06 trunk
Commit 4b46fb91e39f3dc06a2a6a49893d356de9128429eca41ece56fa6339d7becfc6
2 files changed +2 -4 +4 -2
+2 -4
--- src/fuzz.c
+++ src/fuzz.c
@@ -74,15 +74,13 @@
7474
blob_init(&in, 0, 0);
7575
blob_append(&in, (char*)aData, (int)nByte);
7676
blob_zero(&out);
7777
switch( eFuzzType ){
7878
case FUZZ_WIKI: {
79
+ Blob title = BLOB_INITIALIZER;
7980
wiki_convert(&in, &out, 0);
80
- break;
81
- }
82
- case FUZZ_MARKDOWN: {
83
- Blob title = BLOB_INITIALIZER;
81
+ blob_reset(&out);
8482
markdown_to_html(&in, &title, &out);
8583
blob_reset(&title);
8684
break;
8785
}
8886
}
8987
--- src/fuzz.c
+++ src/fuzz.c
@@ -74,15 +74,13 @@
74 blob_init(&in, 0, 0);
75 blob_append(&in, (char*)aData, (int)nByte);
76 blob_zero(&out);
77 switch( eFuzzType ){
78 case FUZZ_WIKI: {
 
79 wiki_convert(&in, &out, 0);
80 break;
81 }
82 case FUZZ_MARKDOWN: {
83 Blob title = BLOB_INITIALIZER;
84 markdown_to_html(&in, &title, &out);
85 blob_reset(&title);
86 break;
87 }
88 }
89
--- src/fuzz.c
+++ src/fuzz.c
@@ -74,15 +74,13 @@
74 blob_init(&in, 0, 0);
75 blob_append(&in, (char*)aData, (int)nByte);
76 blob_zero(&out);
77 switch( eFuzzType ){
78 case FUZZ_WIKI: {
79 Blob title = BLOB_INITIALIZER;
80 wiki_convert(&in, &out, 0);
81 blob_reset(&out);
 
 
 
82 markdown_to_html(&in, &title, &out);
83 blob_reset(&title);
84 break;
85 }
86 }
87
+4 -2
--- src/markdown.c
+++ src/markdown.c
@@ -2026,12 +2026,14 @@
20262026
beg += parse_list(ob, rndr, txt_data, end, 0);
20272027
}else if( prefix_oli(txt_data, end) ){
20282028
beg += parse_list(ob, rndr, txt_data, end, MKD_LIST_ORDERED);
20292029
}else if( has_table && is_tableline(txt_data, end) ){
20302030
beg += parse_table(ob, rndr, txt_data, end);
2031
- }else if( prefix_fencedcode(txt_data, end) ){
2032
- beg += char_codespan(ob, rndr, txt_data, 0, end);
2031
+ }else if( prefix_fencedcode(txt_data, end)
2032
+ && (i = char_codespan(ob, rndr, txt_data, 0, end))!=0
2033
+ ){
2034
+ beg += i;
20332035
}else{
20342036
beg += parse_paragraph(ob, rndr, txt_data, end);
20352037
}
20362038
}
20372039
}
20382040
--- src/markdown.c
+++ src/markdown.c
@@ -2026,12 +2026,14 @@
2026 beg += parse_list(ob, rndr, txt_data, end, 0);
2027 }else if( prefix_oli(txt_data, end) ){
2028 beg += parse_list(ob, rndr, txt_data, end, MKD_LIST_ORDERED);
2029 }else if( has_table && is_tableline(txt_data, end) ){
2030 beg += parse_table(ob, rndr, txt_data, end);
2031 }else if( prefix_fencedcode(txt_data, end) ){
2032 beg += char_codespan(ob, rndr, txt_data, 0, end);
 
 
2033 }else{
2034 beg += parse_paragraph(ob, rndr, txt_data, end);
2035 }
2036 }
2037 }
2038
--- src/markdown.c
+++ src/markdown.c
@@ -2026,12 +2026,14 @@
2026 beg += parse_list(ob, rndr, txt_data, end, 0);
2027 }else if( prefix_oli(txt_data, end) ){
2028 beg += parse_list(ob, rndr, txt_data, end, MKD_LIST_ORDERED);
2029 }else if( has_table && is_tableline(txt_data, end) ){
2030 beg += parse_table(ob, rndr, txt_data, end);
2031 }else if( prefix_fencedcode(txt_data, end)
2032 && (i = char_codespan(ob, rndr, txt_data, 0, end))!=0
2033 ){
2034 beg += i;
2035 }else{
2036 beg += parse_paragraph(ob, rndr, txt_data, end);
2037 }
2038 }
2039 }
2040

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button