Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-cmarkgfm for openSUSE:Factory checked in at 2022-08-04 13:23:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-cmarkgfm (Old) and /work/SRC/openSUSE:Factory/.python-cmarkgfm.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cmarkgfm" Thu Aug 4 13:23:07 2022 rev:4 rq:989564 version:0.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-cmarkgfm/python-cmarkgfm.changes 2022-02-09 20:38:29.434274149 +0100 +++ /work/SRC/openSUSE:Factory/.python-cmarkgfm.new.1521/python-cmarkgfm.changes 2022-08-04 13:23:16.064465343 +0200 @@ -1,0 +2,7 @@ +Fri Jul 15 10:48:35 UTC 2022 - Jacob Michalskie <hel@lcp.world> + +- Update to 2022.3.4: + - Updated cmark to 0.29.0.gfm.3 + - Switched to calendar versioning + +------------------------------------------------------------------- Old: ---- cmarkgfm-0.7.0.tar.gz New: ---- cmarkgfm-0.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-cmarkgfm.spec ++++++ --- /var/tmp/diff_new_pack.ApyEww/_old 2022-08-04 13:23:16.516466625 +0200 +++ /var/tmp/diff_new_pack.ApyEww/_new 2022-08-04 13:23:16.520466637 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-cmarkgfm -Version: 0.7.0 +Version: 0.8.0 Release: 0 Summary: Minimal bindings to GitHub's fork of cmark License: MIT @@ -41,7 +41,8 @@ Minimal bindings to GitHub's fork of cmark %prep -%setup -q -n cmarkgfm-%{version} +%autosetup -p1 -n cmarkgfm-%{version} + chmod a-x LICENSE.txt README.rst %build ++++++ cmarkgfm-0.7.0.tar.gz -> cmarkgfm-0.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cmarkgfm-0.7.0/PKG-INFO new/cmarkgfm-0.8.0/PKG-INFO --- old/cmarkgfm-0.7.0/PKG-INFO 2021-12-14 04:22:59.903733700 +0100 +++ new/cmarkgfm-0.8.0/PKG-INFO 2022-03-05 04:45:00.547795300 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: cmarkgfm -Version: 0.7.0 +Version: 0.8.0 Summary: Minimal bindings to GitHub's fork of cmark Home-page: https://github.com/theacodes/cmarkgfm Author: The Python Packaging Authority @@ -10,7 +10,7 @@ Project-URL: Funding, https://donate.pypi.org Project-URL: Source, https://github.com/theacodes/cmarkgfm Platform: UNKNOWN -Classifier: Development Status :: 3 - Alpha +Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Topic :: Software Development :: Build Tools Classifier: License :: OSI Approved :: MIT License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cmarkgfm-0.7.0/generated/unix/cmark-gfm_version.h new/cmarkgfm-0.8.0/generated/unix/cmark-gfm_version.h --- old/cmarkgfm-0.7.0/generated/unix/cmark-gfm_version.h 2021-12-14 03:22:41.000000000 +0100 +++ new/cmarkgfm-0.8.0/generated/unix/cmark-gfm_version.h 2022-03-05 03:36:19.000000000 +0100 @@ -1,7 +1,7 @@ #ifndef CMARK_GFM_VERSION_H #define CMARK_GFM_VERSION_H -#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 2) -#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.2" +#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 3) +#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.3" #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cmarkgfm-0.7.0/setup.py new/cmarkgfm-0.8.0/setup.py --- old/cmarkgfm-0.7.0/setup.py 2021-12-14 03:22:41.000000000 +0100 +++ new/cmarkgfm-0.8.0/setup.py 2022-03-05 03:36:19.000000000 +0100 @@ -25,7 +25,7 @@ setup( name='cmarkgfm', - version='0.7.0', + version='0.8.0', description="Minimal bindings to GitHub's fork of cmark", long_description=long_description, long_description_content_type="text/x-rst", @@ -33,7 +33,7 @@ author='The Python Packaging Authority', author_email='me@thea.codes, pypa-...@googlegroups.com', classifiers=[ - 'Development Status :: 3 - Alpha', + 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', 'License :: OSI Approved :: MIT License', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cmarkgfm-0.7.0/src/cmarkgfm.egg-info/PKG-INFO new/cmarkgfm-0.8.0/src/cmarkgfm.egg-info/PKG-INFO --- old/cmarkgfm-0.7.0/src/cmarkgfm.egg-info/PKG-INFO 2021-12-14 04:22:59.000000000 +0100 +++ new/cmarkgfm-0.8.0/src/cmarkgfm.egg-info/PKG-INFO 2022-03-05 04:45:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: cmarkgfm -Version: 0.7.0 +Version: 0.8.0 Summary: Minimal bindings to GitHub's fork of cmark Home-page: https://github.com/theacodes/cmarkgfm Author: The Python Packaging Authority @@ -10,7 +10,7 @@ Project-URL: Funding, https://donate.pypi.org Project-URL: Source, https://github.com/theacodes/cmarkgfm Platform: UNKNOWN -Classifier: Development Status :: 3 - Alpha +Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Topic :: Software Development :: Build Tools Classifier: License :: OSI Approved :: MIT License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cmarkgfm-0.7.0/third_party/cmark/extensions/table.c new/cmarkgfm-0.8.0/third_party/cmark/extensions/table.c --- old/cmarkgfm-0.7.0/third_party/cmark/extensions/table.c 2021-12-14 03:22:43.000000000 +0100 +++ new/cmarkgfm-0.8.0/third_party/cmark/extensions/table.c 2022-03-05 03:36:20.000000000 +0100 @@ -129,6 +129,7 @@ bufsize_t cell_matched = 1, pipe_matched = 1, offset; int expect_more_cells = 1; int row_end_offset = 0; + int int_overflow_abort = 0; row = (table_row *)parser->mem->calloc(1, sizeof(table_row)); row->n_columns = 0; @@ -161,6 +162,12 @@ ++cell->internal_offset; } + // make sure we never wrap row->n_columns + // offset will != len and our exit will clean up as intended + if (row->n_columns == UINT16_MAX) { + int_overflow_abort = 1; + break; + } row->n_columns += 1; row->cells = cmark_llist_append(parser->mem, row->cells, cell); } @@ -194,7 +201,7 @@ } } - if (offset != len || row->n_columns == 0) { + if (offset != len || row->n_columns == 0 || int_overflow_abort) { free_table_row(parser->mem, row); row = NULL; } @@ -241,6 +248,11 @@ marker_row = row_from_string(self, parser, input + cmark_parser_get_first_nonspace(parser), len - cmark_parser_get_first_nonspace(parser)); + // assert may be optimized out, don't rely on it for security boundaries + if (!marker_row) { + return parent_container; + } + assert(marker_row); cmark_arena_push(); @@ -264,6 +276,12 @@ len - cmark_parser_get_first_nonspace(parser)); header_row = row_from_string(self, parser, (unsigned char *)parent_string, (int)strlen(parent_string)); + // row_from_string can return NULL, add additional check to ensure n_columns match + if (!marker_row || !header_row || header_row->n_columns != marker_row->n_columns) { + free_table_row(parser->mem, marker_row); + free_table_row(parser->mem, header_row); + return parent_container; + } } if (!cmark_node_set_type(parent_container, CMARK_NODE_TABLE)) { @@ -281,8 +299,10 @@ parent_container->as.opaque = parser->mem->calloc(1, sizeof(node_table)); set_n_table_columns(parent_container, header_row->n_columns); + // allocate alignments based on marker_row->n_columns + // since we populate the alignments array based on marker_row->cells 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; @@ -351,6 +371,12 @@ row = row_from_string(self, parser, input + cmark_parser_get_first_nonspace(parser), len - cmark_parser_get_first_nonspace(parser)); + if (!row) { + // clean up the dangling node + cmark_node_free(table_row_block); + return NULL; + } + { cmark_llist *tmp; int i, table_columns = get_n_table_columns(parent_container);