davidcsterratt / RTriangle

Port of the Triangle Two-Dimensional Quality Mesh Generator and Delaunay Triangulator to R
https://cran.r-project.org/package=RTriangle
9 stars 4 forks source link

Array overruns #6

Closed davidcsterratt closed 6 years ago

davidcsterratt commented 6 years ago

R-Triangle shows array overruns consistently with both gcc and clang's sanitizers. From https://www.stats.ox.ac.uk/pub/bdr/memtests/clang-ASAN/RTriangle/tests/testthat.Rout.fail:

R Under development (unstable) (2018-01-24 r74157) -- "Unsuffered Consequences"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(testthat)
> 
> test_check("RTriangle")
Loading required package: RTriangle
=================================================================
==34355==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffe227a7a20 at pc 0x7fa825894cec bp 0x7ffe227a7920 sp 0x7ffe227a7918
READ of size 8 at 0x7ffe227a7a20 thread T0
    #0 0x7fa825894ceb in fast_expansion_sum_zeroelim /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:5022:16
    #1 0x7fa82589709f in counterclockwiseadapt /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:5237:14
    #2 0x7fa825900694 in mergehulls /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:9573:20
    #3 0x7fa8259097b1 in divconqrecurse /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:9921:5
    #4 0x7fa825909714 in divconqrecurse /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:9914:5
    #5 0x7fa825909714 in divconqrecurse /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:9914:5
    #6 0x7fa825909714 in divconqrecurse /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:9914:5
    #7 0x7fa825909691 in divconqrecurse /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:9913:5
    #8 0x7fa825914a71 in divconqdelaunay /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:10048:3
    #9 0x7fa82592d830 in delaunay /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:11068:17
    #10 0x7fa8259755de in triangulate /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:15766:18
    #11 0x7fa825873b5b in R_triangulate /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/interface.c:249:3
    #12 0x7e828a in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c
    #13 0x85a2fd in do_dotcall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:1252:11
    #14 0x9c4a16 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6766:14
    #15 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #16 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #17 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #18 0xa31c3c in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2774:8
    #19 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #20 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #21 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #22 0xa3b5ac in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3153:13
    #23 0x9c4a16 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6766:14
    #24 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #25 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #26 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #27 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #28 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #29 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #30 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #31 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #32 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #33 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #34 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #35 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #36 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #37 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #38 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #39 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #40 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #41 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #42 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #43 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #44 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #45 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #46 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #47 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #48 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #49 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #50 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #51 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #52 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #53 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #54 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #55 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #56 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #57 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #58 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #59 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #60 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #61 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #62 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #63 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #64 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #65 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #66 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #67 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #68 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #69 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #70 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #71 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #72 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #73 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #74 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #75 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #76 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #77 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #78 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #79 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #80 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #81 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #82 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #83 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #84 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #85 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #86 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #87 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #88 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #89 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #90 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #91 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #92 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #93 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #94 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #95 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #96 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #97 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #98 0xa3bf21 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3177:9
    #99 0x9c4a16 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6766:14
    #100 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #101 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #102 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #103 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #104 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #105 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #106 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #107 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #108 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #109 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #110 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #111 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #112 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #113 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #114 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #115 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #116 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #117 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #118 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #119 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #120 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #121 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #122 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #123 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #124 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #125 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #126 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #127 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #128 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #129 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #130 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #131 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #132 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #133 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #134 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #135 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #136 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #137 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #138 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #139 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #140 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #141 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #142 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #143 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #144 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #145 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #146 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #147 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #148 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #149 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #150 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #151 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #152 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #153 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #154 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #155 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #156 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #157 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #158 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #159 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #160 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #161 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #162 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #163 0x9d4198 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6734:12
    #164 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #165 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #166 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #167 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #168 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #169 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #170 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #171 0xa1c33f in Rf_evalList /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2873:12
    #172 0x9afcd3 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:718:6
    #173 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #174 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #175 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #176 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #177 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #178 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #179 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #180 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #181 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #182 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #183 0x9b0636 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:647:9
    #184 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #185 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #186 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #187 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #188 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #189 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #190 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #191 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #192 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #193 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #194 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #195 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #196 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #197 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #198 0xa24a31 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1827:8
    #199 0x585c60 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:70:8
    #200 0xb91869 in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1372:11
    #201 0x9c13bc in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6786:15
    #202 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #203 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #204 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #205 0xa31c3c in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2774:8
    #206 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #207 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #208 0x9b0636 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:647:9
    #209 0xa1ba3a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:520:8
    #210 0xa63022 in FORCE_PROMISE /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4966:15
    #211 0xa6346b in getvar /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:5008:10
    #212 0x9dcaa7 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:6503:20
    #213 0x9af30d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:624:8
    #214 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #215 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #216 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #217 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #218 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #219 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #220 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #221 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #222 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #223 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #224 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #225 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #226 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #227 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #228 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #229 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #230 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #231 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #232 0xa3015d in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2391:10
    #233 0x9aff1d in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:699:12
    #234 0xa22c9b in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c
    #235 0x9b04e4 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:747:12
    #236 0xb1c6a3 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:258:2
    #237 0xb215a0 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:308:11
    #238 0xb21385 in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1082:5
    #239 0x529e3a in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29:5
    #240 0x7fa833281889 in __libc_start_main (/lib64/libc.so.6+0x20889)
    #241 0x42d5d9 in _start (/data/gannet/ripley/R/R-clang-SAN/bin/exec/R+0x42d5d9)

Address 0x7ffe227a7a20 is located in stack of thread T0 at offset 64 in frame
    #0 0x7fa82589645f in counterclockwiseadapt /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:5175

  This frame has 5 object(s):
    [32, 64) 'B' (line 5181) <== Memory access at offset 64 overflows this variable
    [96, 160) 'C1' (line 5181)
    [192, 288) 'C2' (line 5181)
    [320, 448) 'D' (line 5181)
    [480, 512) 'u' (line 5184)
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow /data/gannet/ripley/R/packages/tests-clang-SAN/RTriangle/src/triangle.c:5022:16 in fast_expansion_sum_zeroelim
Shadow bytes around the buggy address:
  0x1000444ecef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1000444ecf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1000444ecf10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1000444ecf20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1000444ecf30: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
=>0x1000444ecf40: 00 00 00 00[f2]f2 f2 f2 00 00 00 00 00 00 00 00
  0x1000444ecf50: f2 f2 f2 f2 00 00 00 00 00 00 00 00 00 00 00 00
  0x1000444ecf60: f2 f2 f2 f2 00 00 00 00 00 00 00 00 00 00 00 00
  0x1000444ecf70: 00 00 00 00 f2 f2 f2 f2 00 00 00 00 f3 f3 f3 f3
  0x1000444ecf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1000444ecf90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==34355==ABORTING
davidcsterratt commented 6 years ago

With the above fix RTriangle now passes its tests and the clang sanitiser.