src/md4c.c


Log

Author Commit Date CI Message
Martin Mitáš eeb32ecc 2022-01-06T16:16:45 Merge pull request #167 from dtldarek/master Two buffer overflow fixes.
Martin Mitas a8bb4d30 2022-01-06T16:01:55 md_is_table_underline: Remove requirement for minimal length of a cell underline. Fixes #169.
dtldarek 260cd339 2021-08-25T15:02:38 Fix buffer overflow on input found with fuzzying (in c-string format): "\n# h1\nc hh##e2ked\n\n A | rong__ ___strong \u0000\u0000\u0000\u0000\u0000\u0000\a\u0000\u0000\u0000\u0000\n# h1\nh# #2\n### h3\n#### h4\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\\\n##### h5\n#*#####\u0000\n6"
dtldarek 933388a6 2021-08-25T14:41:49 This is a fix for a buffer overflow that happens on input found with fuzzying (in c-string format): "\xA9##r[](r[](".
Martin Mitas 82b226ff 2021-06-27T18:42:09 md_is_html_block_start_condition: Accept lower-case HTML declaration. The change is mandated by the spec v. 0.30.
Martin Mitas d50a0142 2021-06-27T18:31:02 md_is_html_block_start_condition: Update for 0.30. The spec. 0.30 adds the tag <textarea> into the list if HTML blocks start condition type 1.
Kai Koehne e8285942 2021-06-14T09:47:17 Fix MSVC compiler level 3 warnings (#162) Fix various C4244 warnings with the MSVC compiler for 64 bit
Martin Mitas b2ee4b19 2021-04-14T18:27:19 md_resolve_links: Fix the test for the nested autolink covering whole link text. This fixes the fix for #152.
Martin Mitas bcb55d0d 2021-04-14T09:18:09 md_resolve_links: Suppress bogus nested permissive autolink. Fixes #152.
Martin Mitas 4fc808d8 2021-03-29T12:51:48 md_analyze_line: Avoid reading 1 byte beyond the input size. Fixes #155.
Martin Mitas aa654230 2021-03-22T14:00:35 md_enter_child_containers: Propagate list mark character properly. Fixes #153, #154.
Martin Mitas fe2f2427 2021-02-11T11:35:54 Fix copy&paster error in a comment.
Martin Mitas fd7b5fe0 2021-02-05T21:40:47 md_analyze_line: Fix implicit ending of HTML blocks... ... when the HTML block is not explicitly ended (before the enclosing container block ends). Fixes #149.
Martin Mitas 9ba57ccb 2020-12-14T19:53:58 md_link_label_cmp_load_fold_info: Remove a bogus code. The input into the function is already guaranted to not have a new line characters. (And handling of them in the function was broken anyway.)
Martin Mitas 5a44e327 2020-12-14T18:59:56 md_link_label_cmp: Fix the loop end condition. The old version likely could stop prematurely in a corner case when there was a Unicode character at the end of the either string, which maps into multiple fold info codepoints. Fixes #142.
Martin Mitas d4a78622 2020-12-14T18:49:35 Minor cleanup.
Martin Mitas 701a0626 2020-12-14T18:45:54 Make MD_UNICODE_FOLD_INFO::n_codepoints unsigned.
Giuseppe D'Angelo a45f839b 2020-12-14T12:21:50 Fix mixed signed/unsigned comparisons Force both operands to unsigned. n_codepoints does not seem to ever contain negative offsets anyhow, should it actually be unsigned?
Giuseppe D'Angelo 6dd64346 2020-12-14T01:40:40 Silence "unused parameter" warnings Merely added a suitable macro. Didn't refactor any code to actually figure out why the parameters were not used.
Giuseppe D'Angelo 569defae 2020-12-14T01:25:26 Silence -Wimplicit-fallthrough warnings Use a macro that dispatches to the compiler-specific magic to silence implicit fallthrough warnings when the fallthrough was actually intended. The code already featured comments, so these are actually safe to place. (Unfortunately, Clang does not recognize any comment as "fall through" comment, and GCC only recognizes some variations of "fall through", not "pass through". Moreover, one of the comments replaced here had a typo...)
Martin Mitas 26003b88 2020-12-04T20:42:22 md_is_container_mark: Recognize list item marks just before EOF. We were recognizing the list item marks when a new line or a blank character follows. However, given end-of-file means implicitly also an end-of-line, we should recognize in that situation too. Fixes #139.
Martin Mitas 3254b7cb 2020-11-13T12:02:39 md_process_table_block_contents: Suppress empty TBODY block generation. When the table has no body rows, do not call the callback with MD_BLOCK_TBODY events. Fixes #138.
Martin Mitas a997cb21 2020-10-18T09:34:10 Add MD_BLOCK_TABLE_DETAIL. This allows renderers to have the info about table dimension (table column and row count) in advance and e.g. simplify their memory allocation strategy.
Martin Mitas 4585088a 2020-11-13T10:16:34 md_analyze_permissive_url_autolink: Better GFM compatibility. The autolinks now allow unmatched parenthesis, only the trailing parenthesis closers are handled specially to deal with the situation the autolink is all inside an outer parenthesis. Somehow our tests were broken and avoided the cases with unmatched parenthesis pairs inside the auto-link. That's now fixed and in sync with GFM specs too. Fixes #135.
Martin Mitas c3a18d55 2020-11-13T09:27:10 md_collect_marks: continue -> break Does not cause any change in behavior: we just avoid needless loop iterations now.
Martin Mitas baa1dd06 2020-11-09T16:02:06 Fix some English wording in comments.
Rasmus Andersson 125e8e03 2020-10-18T10:18:11 Initializes an uninitilized variable in md_analyze_emph Fixes the following, reported by clang analysis: src/md4c.c:3729:61: warning: variable 'opener_index' may be uninitialized when used here [-Wconditional-uninitialized] MD_MARKCHAIN* opener_chain = md_mark_chain(ctx, opener_index); ^~~~~~~~~~~~ src/md4c.c:3686:25: note: initialize the variable 'opener_index' to silence this warning int opener_index; ^ = 0
Rasmus Andersson 1a2f4816 2020-10-18T10:56:49 Adds missing field initializers (undefined behavior) src/md4c.c:5667:72: warning: missing field 'beg' initializer [-Wmissing-field-initializers] static const MD_LINE_ANALYSIS md_dummy_blank_line = { MD_LINE_BLANK, 0 };
Martin Mitas 002f76c9 2020-10-18T09:37:45 md_resolve_links: Skip [...] used as a reference link/image label. Fixes #131.
Martin Mitas 22ca89a3 2020-09-29T21:33:43 Fix ISANYOF encountering a zero byte in the input. When it happened, it could lead to unexpected results, including broken internal state of the parser. Fixes #130.
Martin Mitas 67214417 2020-08-05T10:53:33 Make mark_chain[] helper macro definitions safer.
Martin Mitas 70d0ef7c 2020-08-05T09:18:41 Avoid simple {0} to initialize a more complex object. Should fix #125.
Martin Mitas c501c891 2020-07-30T10:13:05 Fix spelling of "than" in many occurances. I often spell it errorneously as "then". Doing this mistake way too often when typing fast.
Martin Mitas c595c2ed 2020-07-30T08:38:19 md_process_verbatim_block_contents: Fix off by 1 error. This caused outputting wrong indentation inside a fenced code blocks for lines indented with mor ethan 16 spaces. Fixes #124.
Martin Mitas 72dad97e 2020-05-20T16:44:07 scripts/build_folding_map.py: Handle properly "ranges" of length 2. Update the data structures in md_get_unicode_fold_info() to reflect the update in the script and handle the previously omitted characters. Fixes #113.
Dmitry Atamanov 3d64d6be 2020-05-08T02:13:55 Update to Unicode 13.0 (#111)
Martin Mitas 7f2d880f 2019-08-09T09:50:24 Refactor dir structure. We place all the sources in the single directory in order to not having many dirs with too few sources.