Fix some undefined behavior (#209)

* Fix some undefined behavior

* Avoid overflow in line simplification calculations

* Oops, missed a test

* Didn't mean to add that to the Makefile

* Revert "Revert "[ci] test in debug mode (#202)""

This reverts commit c95c328e47.

* Fix reference to out-of-scope pointer

* Fix invalid shift and out-of-bounds vector element reference

* Update changelog and version
This commit is contained in:
Erica Fischer
2024-03-01 10:11:41 -08:00
committed by GitHub
parent 312e1560a3
commit 6a8f1b83d8
38 changed files with 7903 additions and 9076 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -61,7 +61,7 @@
,
{ "type": "Feature", "properties": { "scalerank": 1, "featurecla": "Admin-0 country", "labelrank": 3, "sovereignt": "Ivory Coast", "sov_a3": "CIV", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Ivory Coast", "adm0_a3": "CIV", "geou_dif": 0, "geounit": "Ivory Coast", "gu_a3": "CIV", "su_dif": 0, "subunit": "Ivory Coast", "su_a3": "CIV", "brk_diff": 0, "name": "Côte d'Ivoire", "name_long": "Côte d'Ivoire", "brk_a3": "CIV", "brk_name": "Côte d'Ivoire", "abbrev": "I.C.", "postal": "CI", "formal_en": "Republic of Ivory Coast", "formal_fr": "Republic of Cote D'Ivoire", "name_sort": "Côte d'Ivoire", "mapcolor7": 4, "mapcolor8": 6, "mapcolor9": 3, "mapcolor13": 3, "pop_est": 20617068, "gdp_md_est": 33850, "pop_year": -99, "lastcensus": 1998, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "4. Lower middle income", "wikipedia": -99, "iso_a2": "CI", "iso_a3": "CIV", "iso_n3": "384", "un_a3": "384", "wb_a2": "CI", "wb_a3": "CIV", "woe_id": -99, "adm0_a3_is": "CIV", "adm0_a3_us": "CIV", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Africa", "region_un": "Africa", "subregion": "Western Africa", "region_wb": "Sub-Saharan Africa", "name_len": 13, "long_len": 13, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -7.910156, 10.314919 ], [ -2.812500, 9.622414 ], [ -2.812500, 5.003394 ], [ -7.910156, 10.314919 ] ] ] } }
,
{ "type": "Feature", "properties": { "scalerank": 1, "featurecla": "Admin-0 country", "labelrank": 4, "sovereignt": "Antarctica", "sov_a3": "ATA", "adm0_dif": 0, "level": 2, "type": "Indeterminate", "admin": "Antarctica", "adm0_a3": "ATA", "geou_dif": 0, "geounit": "Antarctica", "gu_a3": "ATA", "su_dif": 0, "subunit": "Antarctica", "su_a3": "ATA", "brk_diff": 0, "name": "Antarctica", "name_long": "Antarctica", "brk_a3": "ATA", "brk_name": "Antarctica", "abbrev": "Ant.", "postal": "AQ", "note_brk": "Multiple claims held in abeyance", "name_sort": "Antarctica", "mapcolor7": 4, "mapcolor8": 5, "mapcolor9": 1, "mapcolor13": -99, "pop_est": 3802, "gdp_md_est": 760.4, "pop_year": -99, "lastcensus": -99, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "2. High income: nonOECD", "wikipedia": -99, "iso_a2": "AQ", "iso_a3": "ATA", "iso_n3": "010", "un_a3": "-099", "wb_a2": "-99", "wb_a3": "-99", "woe_id": -99, "adm0_a3_is": "ATA", "adm0_a3_us": "ATA", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Antarctica", "region_un": "Antarctica", "subregion": "Antarctica", "region_wb": "Antarctica", "name_len": 10, "long_len": 10, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -46.669922, -77.823323 ], [ -43.330078, -80.027655 ], [ -52.822266, -80.969904 ], [ -46.669922, -77.823323 ] ] ], [ [ [ -60.644531, -79.624056 ], [ -64.511719, -80.928426 ], [ -66.269531, -80.253391 ], [ -60.644531, -79.624056 ] ] ], [ [ [ 135.087891, -65.293468 ], [ 168.398438, -70.959697 ], [ 166.992188, -78.750659 ], [ 159.785156, -80.942273 ], [ 180.000000, -85.051129 ], [ 180.000000, -84.714152 ], [ 180.966797, -84.142939 ], [ 185.625000, -84.532994 ], [ 187.031250, -84.079819 ], [ 187.031250, -85.622069 ], [ 180.000000, -85.622069 ], [ -180.000000, -85.622069 ], [ -187.031250, -85.622069 ], [ -187.031250, -84.319608 ], [ -180.000000, -84.714152 ], [ -180.000000, -85.051129 ], [ -179.033203, -84.142939 ], [ -174.375000, -84.532994 ], [ -169.980469, -83.886366 ], [ -162.597656, -85.051129 ], [ -148.535156, -85.608630 ], [ -143.173828, -85.051129 ], [ -156.796875, -81.106811 ], [ -150.644531, -81.334844 ], [ -146.777344, -79.920548 ], [ -158.378906, -76.880775 ], [ -151.347656, -77.389504 ], [ -135.175781, -74.307353 ], [ -113.906250, -73.726595 ], [ -100.634766, -75.297735 ], [ -103.710938, -72.607120 ], [ -74.882812, -73.873717 ], [ -65.302734, -68.528235 ], [ -61.347656, -74.116047 ], [ -77.255859, -76.720223 ], [ -78.046875, -79.187834 ], [ -58.183594, -83.215693 ], [ -49.746094, -81.723188 ], [ -42.802734, -82.082145 ], [ -28.564453, -80.342262 ], [ -35.332031, -78.116408 ], [ -10.283203, -71.272595 ], [ 37.177734, -69.162558 ], [ 56.337891, -65.982270 ], [ 68.906250, -67.941650 ], [ 69.873047, -72.262310 ], [ 87.978516, -66.196009 ], [ 135.087891, -65.293468 ] ] ], [ [ [ -163.125000, -78.224513 ], [ -160.224609, -78.699106 ], [ -159.169922, -79.496652 ], [ -163.125000, -78.224513 ] ] ], [ [ [ -70.224609, -68.879358 ], [ -73.037109, -72.235514 ], [ -74.970703, -71.663663 ], [ -70.224609, -68.879358 ] ] ] ] } }
{ "type": "Feature", "properties": { "scalerank": 1, "featurecla": "Admin-0 country", "labelrank": 4, "sovereignt": "Antarctica", "sov_a3": "ATA", "adm0_dif": 0, "level": 2, "type": "Indeterminate", "admin": "Antarctica", "adm0_a3": "ATA", "geou_dif": 0, "geounit": "Antarctica", "gu_a3": "ATA", "su_dif": 0, "subunit": "Antarctica", "su_a3": "ATA", "brk_diff": 0, "name": "Antarctica", "name_long": "Antarctica", "brk_a3": "ATA", "brk_name": "Antarctica", "abbrev": "Ant.", "postal": "AQ", "note_brk": "Multiple claims held in abeyance", "name_sort": "Antarctica", "mapcolor7": 4, "mapcolor8": 5, "mapcolor9": 1, "mapcolor13": -99, "pop_est": 3802, "gdp_md_est": 760.4, "pop_year": -99, "lastcensus": -99, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "2. High income: nonOECD", "wikipedia": -99, "iso_a2": "AQ", "iso_a3": "ATA", "iso_n3": "010", "un_a3": "-099", "wb_a2": "-99", "wb_a3": "-99", "woe_id": -99, "adm0_a3_is": "ATA", "adm0_a3_us": "ATA", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "Antarctica", "region_un": "Antarctica", "subregion": "Antarctica", "region_wb": "Antarctica", "name_len": 10, "long_len": 10, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -46.669922, -77.823323 ], [ -43.330078, -80.027655 ], [ -52.822266, -80.969904 ], [ -46.669922, -77.823323 ] ] ], [ [ [ -60.644531, -79.624056 ], [ -64.511719, -80.928426 ], [ -66.269531, -80.253391 ], [ -60.644531, -79.624056 ] ] ], [ [ [ 135.087891, -65.293468 ], [ 171.210938, -71.691293 ], [ 159.785156, -80.942273 ], [ 180.000000, -85.051129 ], [ 180.000000, -84.714152 ], [ 180.966797, -84.142939 ], [ 185.625000, -84.532994 ], [ 187.031250, -84.079819 ], [ 187.031250, -85.622069 ], [ 180.000000, -85.622069 ], [ -180.000000, -85.622069 ], [ -187.031250, -85.622069 ], [ -187.031250, -84.319608 ], [ -180.000000, -84.714152 ], [ -180.000000, -85.051129 ], [ -179.033203, -84.142939 ], [ -174.375000, -84.532994 ], [ -169.980469, -83.886366 ], [ -162.597656, -85.051129 ], [ -148.535156, -85.608630 ], [ -143.173828, -85.051129 ], [ -156.796875, -81.106811 ], [ -150.644531, -81.334844 ], [ -146.777344, -79.920548 ], [ -158.378906, -76.880775 ], [ -151.347656, -77.389504 ], [ -135.175781, -74.307353 ], [ -113.906250, -73.726595 ], [ -100.634766, -75.297735 ], [ -103.710938, -72.607120 ], [ -74.882812, -73.873717 ], [ -65.302734, -68.528235 ], [ -61.347656, -74.116047 ], [ -77.255859, -76.720223 ], [ -78.046875, -79.187834 ], [ -58.183594, -83.215693 ], [ -49.746094, -81.723188 ], [ -42.802734, -82.082145 ], [ -28.564453, -80.342262 ], [ -35.332031, -78.116408 ], [ -10.283203, -71.272595 ], [ 38.671875, -69.778952 ], [ 54.492188, -65.802776 ], [ 68.906250, -67.941650 ], [ 69.873047, -72.262310 ], [ 87.978516, -66.196009 ], [ 135.087891, -65.293468 ] ] ], [ [ [ -163.125000, -78.224513 ], [ -160.224609, -78.699106 ], [ -159.169922, -79.496652 ], [ -163.125000, -78.224513 ] ] ], [ [ [ -70.224609, -68.879358 ], [ -73.037109, -72.235514 ], [ -74.970703, -71.663663 ], [ -70.224609, -68.879358 ] ] ] ] } }
,
{ "type": "Feature", "properties": { "scalerank": 1, "featurecla": "Admin-0 country", "labelrank": 3, "sovereignt": "Ecuador", "sov_a3": "ECU", "adm0_dif": 0, "level": 2, "type": "Sovereign country", "admin": "Ecuador", "adm0_a3": "ECU", "geou_dif": 0, "geounit": "Ecuador", "gu_a3": "ECU", "su_dif": 0, "subunit": "Ecuador", "su_a3": "ECU", "brk_diff": 0, "name": "Ecuador", "name_long": "Ecuador", "brk_a3": "ECU", "brk_name": "Ecuador", "abbrev": "Ecu.", "postal": "EC", "formal_en": "Republic of Ecuador", "name_sort": "Ecuador", "mapcolor7": 1, "mapcolor8": 5, "mapcolor9": 2, "mapcolor13": 12, "pop_est": 14573101, "gdp_md_est": 107700, "pop_year": -99, "lastcensus": 2010, "gdp_year": -99, "economy": "6. Developing region", "income_grp": "3. Upper middle income", "wikipedia": -99, "iso_a2": "EC", "iso_a3": "ECU", "iso_n3": "218", "un_a3": "218", "wb_a2": "EC", "wb_a3": "ECU", "woe_id": -99, "adm0_a3_is": "ECU", "adm0_a3_us": "ECU", "adm0_a3_un": -99, "adm0_a3_wb": -99, "continent": "South America", "region_un": "Americas", "subregion": "South America", "region_wb": "Latin America & Caribbean", "name_len": 7, "long_len": 7, "abbrev_len": 4, "tiny": -99, "homepart": 1 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -80.068359, 0.790990 ], [ -75.410156, -0.175781 ], [ -80.068359, -4.302591 ], [ -80.068359, 0.790990 ] ] ] } }
,
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long