diff --git a/extensions/table.c b/extensions/table.c index a5bb44067..f6637466d 100644 --- a/extensions/table.c +++ b/extensions/table.c @@ -251,7 +251,7 @@ static cmark_node *try_opening_table_header(cmark_syntax_extension *self, parent_string = cmark_node_get_string_content(parent_container); header_row = row_from_string(self, parser, (unsigned char *)parent_string, (int)strlen(parent_string)); - if (!header_row || header_row->n_columns != marker_row->n_columns) { + if (!header_row || header_row->n_columns > marker_row->n_columns) { free_table_row(parser->mem, marker_row); free_table_row(parser->mem, header_row); cmark_arena_pop(); @@ -282,7 +282,7 @@ static cmark_node *try_opening_table_header(cmark_syntax_extension *self, set_n_table_columns(parent_container, header_row->n_columns); uint8_t *alignments = - (uint8_t *)parser->mem->calloc(header_row->n_columns, sizeof(uint8_t)); + (uint8_t *)parser->mem->calloc(marker_row->n_columns, sizeof(uint8_t)); cmark_llist *it = marker_row->cells; for (i = 0; it; it = it->next, ++i) { node_cell *node = (node_cell *)it->data;