Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Array overruns #6

Closed
davidcsterratt opened this issue Jan 30, 2018 · 1 comment
Closed

Array overruns #6

davidcsterratt opened this issue Jan 30, 2018 · 1 comment
Assignees
Labels

Comments

@davidcsterratt
Copy link
Owner

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
Copy link
Owner Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant