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

Warning seen with sanitizers #769

Closed
jennybc opened this issue Feb 26, 2025 · 7 comments · Fixed by #771
Closed

Warning seen with sanitizers #769

jennybc opened this issue Feb 26, 2025 · 7 comments · Fixed by #771

Comments

@jennybc
Copy link
Member

jennybc commented Feb 26, 2025

Collecting various links and snippets to make this easier for me to analyze.

Now that v1.4.4 is on CRAN, there is a new deadline to address this issue: "Please correct before 2025-03-14 to safely retain your package on CRAN."


gcc-UBSAN result from CRAN's additional issues, pertaining to readxl v1.4.3

https://www.stats.ox.ac.uk/pub/bdr/memtests/gcc-UBSAN/readxl/

First instance reported in examples for excel_sheets(). Perhaps notably the geometry.xls sheet has been accessed earlier (in the examples for cell-specification) w/o issue. Not sure how much to read into where the warning appears in this output, though.

Key bits:

libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'
libxls/xls.c:481:75: runtime error: index 1 out of bounds for type 'BYTE [1]'
libxls/xls.c:598:54: runtime error: index 1 out of bounds for type 'WORD [1]'
Click to expand, readxl-Ex.Rout
> ### Name: excel_sheets
> ### Title: List all sheets in an excel spreadsheet
> ### Aliases: excel_sheets
> 
> ### ** Examples
> 
> excel_sheets(readxl_example("datasets.xlsx"))
[1] "iris"     "mtcars"   "chickwts" "quakes"  
> excel_sheets(readxl_example("datasets.xls"))
[1] "iris"     "mtcars"   "chickwts" "quakes"  
> 
> # To load all sheets in a workbook, use lapply()
> path <- readxl_example("datasets.xls")
> lapply(excel_sheets(path), read_excel, path = path)
libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
    #0 0x7fcda9eaf57f in xls_addCell libxls/xls.c:583
    #1 0x7fcda9e53d44 in xls_parseWorkSheet libxls/xls.c:1366
    #2 0x7fcda9e53d44 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/XlsCellSet.h:61
    #3 0x7fcda9dcb9b7 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/SheetView.h:46
    #4 0x7fcda9dcb9b7 in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:25
    #5 0x7fcda9dcb9b7 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:82
    #6 0x7fcda9dcb9b7 in _readxl_read_xls_ /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/cpp11.cpp:12
    #7 0x7255ba in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:790
    #8 0x8bf2b4 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8668
    #9 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #10 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #11 0x8fcc8b in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976
    #12 0x841f17 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1193
    #13 0xa59f6b in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:575
    #14 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #15 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #16 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #17 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #18 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #19 0x86b2f7 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #20 0x86b2f7 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2460
    #21 0x4aa069 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:75
    #22 0xa52d8a in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1411
    #23 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #24 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #25 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #26 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #27 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #28 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #29 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #30 0x9cb6d9 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265
    #31 0x9cb6d9 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317
    #32 0x9ccbdb in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219
    #33 0x9d7182 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226
    #34 0x42ad1f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29
    #35 0x7fcdbbe38087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #36 0x7fcdbbe3814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #37 0x42b704 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42b704) (BuildId: 7e8411d7e62b25da54bdc82be311ba0450c514fd)

libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'
    #0 0x7fcda9eaf7a9 in xls_addCell libxls/xls.c:584
    #1 0x7fcda9e53d44 in xls_parseWorkSheet libxls/xls.c:1366
    #2 0x7fcda9e53d44 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/XlsCellSet.h:61
    #3 0x7fcda9dcb9b7 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/SheetView.h:46
    #4 0x7fcda9dcb9b7 in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:25
    #5 0x7fcda9dcb9b7 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:82
    #6 0x7fcda9dcb9b7 in _readxl_read_xls_ /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/cpp11.cpp:12
    #7 0x7255ba in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:790
    #8 0x8bf2b4 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8668
    #9 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #10 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #11 0x8fcc8b in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976
    #12 0x841f17 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1193
    #13 0xa59f6b in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:575
    #14 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #15 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #16 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #17 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #18 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #19 0x86b2f7 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #20 0x86b2f7 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2460
    #21 0x4aa069 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:75
    #22 0xa52d8a in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1411
    #23 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #24 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #25 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #26 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #27 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #28 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #29 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #30 0x9cb6d9 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265
    #31 0x9cb6d9 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317
    #32 0x9ccbdb in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219
    #33 0x9d7182 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226
    #34 0x42ad1f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29
    #35 0x7fcdbbe38087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #36 0x7fcdbbe3814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #37 0x42b704 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42b704) (BuildId: 7e8411d7e62b25da54bdc82be311ba0450c514fd)
Click to expand, testthat.Rout

R Under development (unstable) (2025-02-21 r87787) -- "Unsuffered Consequences"
Copyright (C) 2025 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu

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)
> library(readxl)
> 
> test_check("readxl")
libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
    #0 0x7fbbea0af57f in xls_addCell libxls/xls.c:583
    #1 0x7fbbea053d44 in xls_parseWorkSheet libxls/xls.c:1366
    #2 0x7fbbea053d44 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/XlsCellSet.h:61
    #3 0x7fbbe9fcb9b7 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/SheetView.h:46
    #4 0x7fbbe9fcb9b7 in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:25
    #5 0x7fbbe9fcb9b7 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:82
    #6 0x7fbbe9fcb9b7 in _readxl_read_xls_ /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/cpp11.cpp:12
    #7 0x7255ba in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:790
    #8 0x8bf2b4 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8668
    #9 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #10 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #11 0x8fcc8b in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976
    #12 0x841f17 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1193
    #13 0xa59f6b in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:575
    #14 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #15 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #16 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #17 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #18 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #19 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #20 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #21 0x865886 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3567
    #22 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #23 0x84fd53 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2996
    #24 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #25 0x86da99 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3941
    #26 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #27 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #28 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #29 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #30 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #31 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #32 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #33 0x86ec03 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3959
    #34 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #35 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #36 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #37 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #38 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #39 0x86b2f7 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #40 0x86b2f7 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2460
    #41 0x4aa069 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:75
    #42 0xa52d8a in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1411
    #43 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #44 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #45 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #46 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #47 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #48 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #49 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #50 0x9cb6d9 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265
    #51 0x9cb6d9 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317
    #52 0x9ccbdb in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219
    #53 0x9d7182 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226
    #54 0x42ad1f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29
    #55 0x7fbbfe238087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #56 0x7fbbfe23814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #57 0x42b704 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42b704) (BuildId: 7e8411d7e62b25da54bdc82be311ba0450c514fd)

libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'
    #0 0x7fbbea0af7a9 in xls_addCell libxls/xls.c:584
    #1 0x7fbbea053d44 in xls_parseWorkSheet libxls/xls.c:1366
    #2 0x7fbbea053d44 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/XlsCellSet.h:61
    #3 0x7fbbe9fcb9b7 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/SheetView.h:46
    #4 0x7fbbe9fcb9b7 in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:25
    #5 0x7fbbe9fcb9b7 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:82
    #6 0x7fbbe9fcb9b7 in _readxl_read_xls_ /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/cpp11.cpp:12
    #7 0x7255ba in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:790
    #8 0x8bf2b4 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8668
    #9 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #10 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #11 0x8fcc8b in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976
    #12 0x841f17 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1193
    #13 0xa59f6b in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:575
    #14 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #15 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #16 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #17 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #18 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #19 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #20 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #21 0x865886 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3567
    #22 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #23 0x84fd53 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2996
    #24 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #25 0x86da99 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3941
    #26 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #27 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #28 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #29 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #30 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #31 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #32 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #33 0x86ec03 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3959
    #34 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #35 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #36 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #37 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #38 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #39 0x86b2f7 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #40 0x86b2f7 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2460
    #41 0x4aa069 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:75
    #42 0xa52d8a in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1411
    #43 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #44 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #45 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #46 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #47 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #48 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #49 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #50 0x9cb6d9 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265
    #51 0x9cb6d9 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317
    #52 0x9ccbdb in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219
    #53 0x9d7182 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226
    #54 0x42ad1f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29
    #55 0x7fbbfe238087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #56 0x7fbbfe23814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #57 0x42b704 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42b704) (BuildId: 7e8411d7e62b25da54bdc82be311ba0450c514fd)

libxls/xls.c:481:75: runtime error: index 1 out of bounds for type 'BYTE [1]'
    #0 0x7fbbea08fe5f in xls_isCellTooSmall libxls/xls.c:481
    #1 0x7fbbea05261b in xls_preparseWorkSheet libxls/xls.c:1178
    #2 0x7fbbea05261b in xls_parseWorkSheet libxls/xls.c:1247
    #3 0x7fbbea05261b in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/XlsCellSet.h:61
    #4 0x7fbbe9fcb9b7 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/SheetView.h:46
    #5 0x7fbbe9fcb9b7 in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:25
    #6 0x7fbbe9fcb9b7 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:82
    #7 0x7fbbe9fcb9b7 in _readxl_read_xls_ /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/cpp11.cpp:12
    #8 0x7255ba in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:790
    #9 0x8bf2b4 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8668
    #10 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #11 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #12 0x8fcc8b in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976
    #13 0x841f17 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1193
    #14 0xa59f6b in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:575
    #15 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #16 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #17 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #18 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #19 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #20 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #21 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #22 0x865886 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3567
    #23 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #24 0x84fd53 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2996
    #25 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #26 0x86da99 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3941
    #27 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #28 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #29 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #30 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #31 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #32 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #33 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #34 0x86ec03 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3959
    #35 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #36 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #37 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #38 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #39 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #40 0x86b2f7 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #41 0x86b2f7 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2460
    #42 0x4aa069 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:75
    #43 0xa52d8a in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1411
    #44 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #45 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #46 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #47 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #48 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #49 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #50 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #51 0x9cb6d9 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265
    #52 0x9cb6d9 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317
    #53 0x9ccbdb in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219
    #54 0x9d7182 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226
    #55 0x42ad1f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29
    #56 0x7fbbfe238087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #57 0x7fbbfe23814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #58 0x42b704 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42b704) (BuildId: 7e8411d7e62b25da54bdc82be311ba0450c514fd)

libxls/xls.c:598:54: runtime error: index 1 out of bounds for type 'WORD [1]'
    #0 0x7fbbea0af3fe in xls_addCell libxls/xls.c:598
    #1 0x7fbbea053d44 in xls_parseWorkSheet libxls/xls.c:1366
    #2 0x7fbbea053d44 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/XlsCellSet.h:61
    #3 0x7fbbe9fcb9b7 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/SheetView.h:46
    #4 0x7fbbe9fcb9b7 in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:25
    #5 0x7fbbe9fcb9b7 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/Read.cpp:82
    #6 0x7fbbe9fcb9b7 in _readxl_read_xls_ /data/gannet/ripley/R/packages/tests-gcc-SAN/readxl/src/cpp11.cpp:12
    #7 0x7255ba in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:790
    #8 0x8bf2b4 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8668
    #9 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #10 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #11 0x8fcc8b in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976
    #12 0x841f17 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1193
    #13 0xa59f6b in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:575
    #14 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #15 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #16 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #17 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #18 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #19 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #20 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #21 0x865886 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3567
    #22 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #23 0x84fd53 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2996
    #24 0x841496 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1232
    #25 0x86da99 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3941
    #26 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #27 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #28 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #29 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #30 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #31 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #32 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #33 0x86ec03 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3959
    #34 0x8a9803 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8118
    #35 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #36 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #37 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #38 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #39 0x86b2f7 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #40 0x86b2f7 in R_forceAndCall /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2460
    #41 0x4aa069 in do_lapply /data/gannet/ripley/R/svn/R-devel/src/main/apply.c:75
    #42 0xa52d8a in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1411
    #43 0x8b687d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8138
    #44 0x87a9cf in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7501
    #45 0x8409e2 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167
    #46 0x84b9b2 in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2393
    #47 0x83f35a in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2306
    #48 0x841066 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2328
    #49 0x841066 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1280
    #50 0x9cb6d9 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:265
    #51 0x9cb6d9 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317
    #52 0x9ccbdb in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1219
    #53 0x9d7182 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1226
    #54 0x42ad1f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29
    #55 0x7fbbfe238087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #56 0x7fbbfe23814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
    #57 0x42b704 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x42b704) (BuildId: 7e8411d7e62b25da54bdc82be311ba0450c514fd)

[ FAIL 0 | WARN 0 | SKIP 25 | PASS 323 ]

══ Skipped tests (25) ══════════════════════════════════════════════════════════
• On CRAN (25): 'test-coercion.R:3:3', 'test-coercion.R:31:3',
  'test-coercion.R:61:3', 'test-col-names.R:63:3', 'test-col-types.R:2:3',
  'test-col-types.R:12:3', 'test-col-types.R:21:3', 'test-col-types.R:89:3',
  'test-col-types.R:111:3', 'test-col-types.R:155:3', 'test-col-types.R:166:3',
  'test-dates.R:25:3', 'test-dates.R:40:3', 'test-problems.R:3:3',
  'test-read-excel.R:22:3', 'test-read-excel.R:35:3', 'test-read-excel.R:42:3',
  'test-read-excel.R:64:3', 'test-read-excel.R:89:3', 'test-read-excel.R:96:3',
  'test-read-excel.R:105:3', 'test-sheets.R:2:3', 'test-sheets.R:13:3',
  'test-sheets.R:24:3', 'test-sheets.R:43:3'

[ FAIL 0 | WARN 0 | SKIP 25 | PASS 323 ]
> 
> proc.time()
   user  system elapsed 
 51.325   1.707  66.445 
@jennybc
Copy link
Member Author

jennybc commented Feb 26, 2025

gcc-san result from "specialChecks" on CRAN's incoming checks for a submission of (hopeful) readxl v1.4.4

Implicates the same loci in xls.c as gcc-UBSAN report for readxl v1.4.3, plus a couple other locations in that file.

https://win-builder.r-project.org/incoming_pretest/readxl_1.4.4_20250226_040323/specialChecks/gcc-san/

From summary.txt:

Package check result: OK

Post-processing issues found:

File: readxl-Ex.Rout
libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'

File: tests/testthat.Rout
libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'
libxls/xls.c:481:75: runtime error: index 1 out of bounds for type 'BYTE [1]'
libxls/xls.c:598:54: runtime error: index 1 out of bounds for type 'WORD [1]'

@jennybc
Copy link
Member Author

jennybc commented Feb 26, 2025

valgrind result seen in my recent PR updating libxls to v1.6.3

https://github.com/tidyverse/readxl/actions/runs/13274947484/job/37062619489

Suspect this is unrelated to the libxls out of bounds warnings

Click to expand
-- Examples and test output ---------------------------------------------
  -- check/readxl.Rcheck/readxl-Ex.Rout
  ==1955== Memcheck, a memory error detector
  ==1955== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
  ==1955== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
  ==1955== Command: /opt/R/devel-valgrind/lib/R/bin/exec/R --vanilla
  ==1955==

... examples run here ...

==1955== 
  ==1955== HEAP SUMMARY:
  ==1955==     in use at exit: 101,396,453 bytes in 19,463 blocks
  ==1955==   total heap usage: 199,383 allocs, 179,920 frees, 295,227,724 bytes allocated
  ==1955== 
  ==1955== LEAK SUMMARY:
  ==1955==    definitely lost: 0 bytes in 0 blocks
  ==1955==    indirectly lost: 0 bytes in 0 blocks
  ==1955==      possibly lost: 0 bytes in 0 blocks
  ==1955==    still reachable: 101,396,453 bytes in 19,463 blocks
  ==1955==                       of which reachable via heuristic:
  ==1955==                         newarray           : 4,264 bytes in 1 blocks
  ==1955==         suppressed: 0 bytes in 0 blocks
  ==1955== Reachable blocks (those to which a pointer was found) are not shown.
  ==1955== To see them, rerun with: --leak-check=full --show-leak-kinds=all
  ==1955== 
  ==1955== For lists of detected and suppressed errors, rerun with: -s
  ==1955== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
  -- check/readxl.Rcheck/tests/testthat.Rout
  ==1983== Memcheck, a memory error detector
  ==1983== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
  ==1983== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
  ==1983== Command: /opt/R/devel-valgrind/lib/R/bin/exec/R -f testthat.R --restore --save --no-readline --vanilla
  ==1983== 

... shift to tests ...

==1983== 
  ==1983== HEAP SUMMARY:
  ==1983==     in use at exit: 113,570,623 bytes in 26,122 blocks
  ==1983==   total heap usage: 766,982 allocs, 740,860 frees, 744,710,732 bytes allocated
  ==1983== 
  ==1983== 32 bytes in 1 blocks are definitely lost in loss record 47 of 2,445
  ==1983==    at 0x4842F95: operator new(unsigned long) (vg_replace_malloc.c:483)
  ==1983==    by 0x2F7BD185: allocate (new_allocator.h:151)
  ==1983==    by 0x2F7BD185: allocate (alloc_traits.h:482)
  ==1983==    by 0x2F7BD185: _M_allocate (stl_vector.h:378)
  ==1983==    by 0x2F7BD185: _M_allocate (stl_vector.h:375)
  ==1983==    by 0x2F7BD185: void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) (vector.tcc:459)
  ==1983==    by 0x2F7BD78C: emplace_back<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (vector.tcc:123)
  ==1983==    by 0x2F7BD78C: std::enable_if<std::is_same<std::decay<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::value, std::decay<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::type>::type cpp11::as_cpp<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(SEXPREC*) (r_vector.hpp:1425)
  ==1983==    by 0x2F7BB753: _readxl_read_xls_ (cpp11.cpp:12)
  ==1983==    by 0x49587E5: R_doDotCall (dotcode.c:790)
  ==1983==    by 0x4993FBD: bcEval_loop (eval.c:8672)
  ==1983==    by 0x49A5282: bcEval (eval.c:7505)
  ==1983==    by 0x49A5282: bcEval (eval.c:7490)
  ==1983==    by 0x49A561A: Rf_eval (eval.c:1167)
  ==1983==    by 0x49A5F57: forcePromise.part.0 (eval.c:976)
  ==1983==    by 0x49A58F7: forcePromise (eval.c:956)
  ==1983==    by 0x49A58F7: Rf_eval (eval.c:1193)
  ==1983==    by 0x49F4D68: do_usemethod (objects.c:575)
  ==1983==    by 0x499859E: bcEval_loop (eval.c:8142)
  ==1983== 
  ==1983== 32 bytes in 1 blocks are definitely lost in loss record 48 of 2,445
  ==1983==    at 0x4842F95: operator new(unsigned long) (vg_replace_malloc.c:483)
  ==1983==    by 0x2F7D5BDA: allocate (new_allocator.h:151)
  ==1983==    by 0x2F7D5BDA: allocate (alloc_traits.h:482)
  ==1983==    by 0x2F7D5BDA: _M_allocate (stl_vector.h:378)
  ==1983==    by 0x2F7D5BDA: _M_allocate (stl_vector.h:375)
  ==1983==    by 0x2F7D5BDA: _M_create_storage (stl_vector.h:395)
  ==1983==    by 0x2F7D5BDA: _Vector_base (stl_vector.h:332)
  ==1983==    by 0x2F7D5BDA: std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) (stl_vector.h:600)
  ==1983==    by 0x2F7D03AB: read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) (Read.cpp:82)
  ==1983==    by 0x2F7BBA45: _readxl_read_xls_ (cpp11.cpp:12)
  ==1983==    by 0x49587E5: R_doDotCall (dotcode.c:790)
  ==1983==    by 0x4993FBD: bcEval_loop (eval.c:8672)
  ==1983==    by 0x49A5282: bcEval (eval.c:7505)
  ==1983==    by 0x49A5282: bcEval (eval.c:7490)
  ==1983==    by 0x49A561A: Rf_eval (eval.c:1167)
  ==1983==    by 0x49A5F57: forcePromise.part.0 (eval.c:976)
  ==1983==    by 0x2F7D0485: basic_string (basic_string.h:551)
  ==1983==    by 0x2F7D0485: read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) (Read.cpp:82)
  ==1983==    by 0x2F7BBA45: _readxl_read_xls_ (cpp11.cpp:12)
  ==1983==    by 0x49587E5: R_doDotCall (dotcode.c:790)
  ==1983==    by 0x4993FBD: bcEval_loop (eval.c:8672)
  ==1983==    by 0x49A5282: bcEval (eval.c:7505)
  ==1983==    by 0x49A5282: bcEval (eval.c:7490)
  ==1983==    by 0x49A561A: Rf_eval (eval.c:1167)
  ==1983==    by 0x49A5F57: forcePromise.part.0 (eval.c:976)
  ==1983==    by 0x49A58F7: forcePromise (eval.c:956)
  ==1983==    by 0x49A58F7: Rf_eval (eval.c:1193)
  ==1983==    by 0x49F4D68: do_usemethod (objects.c:575)
  ==1983==    by 0x499859E: bcEval_loop (eval.c:8142)
  ==1983== 
  ==1983== 82 bytes in 1 blocks are definitely lost in loss record 94 of 2,445
  ==1983==    at 0x4842F95: operator new(unsigned long) (vg_replace_malloc.c:483)
  ==1983==    by 0x2F7BFA10: _M_construct<char const*> (basic_string.tcc:229)
  ==1983==    by 0x2F7BFA10: basic_string<> (basic_string.h:649)
  ==1983==    by 0x2F7BFA10: XlsWorkBook::XlsWorkBook(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (XlsWorkBook.h:34)
  ==1983==    by 0x2F7DEC24: SheetView (SheetView.h:45)
  ==1983==    by 0x2F7DEC24: cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) (Read.cpp:25)
  ==1983==    by 0x2F7D04DB: read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) (Read.cpp:82)
  ==1983==    by 0x2F7BBA45: _readxl_read_xls_ (cpp11.cpp:12)
  ==1983==    by 0x49587E5: R_doDotCall (dotcode.c:790)
  ==1983==    by 0x4993FBD: bcEval_loop (eval.c:8672)
  ==1983==    by 0x49A5282: bcEval (eval.c:7505)
  ==1983==    by 0x49A5282: bcEval (eval.c:7490)
  ==1983==    by 0x49A561A: Rf_eval (eval.c:[1167](https://github.com/tidyverse/readxl/actions/runs/13274947484/job/37062619489#step:6:1175))
  ==1983==    by 0x49A5F57: forcePromise.part.0 (eval.c:976)
  ==1983==    by 0x49A58F7: forcePromise (eval.c:956)
  ==1983==    by 0x49A58F7: Rf_eval (eval.c:1193)
  ==1983==    by 0x49F4D68: do_usemethod (objects.c:575)
  ==1983== 
  ==1983== LEAK SUMMARY:
  ==1983==    definitely lost: 342 bytes in 6 blocks
  ==1983==    indirectly lost: 0 bytes in 0 blocks
  ==1983==      possibly lost: 0 bytes in 0 blocks
  ==1983==    still reachable: 113,570,281 bytes in 26,116 blocks
  ==1983==                       of which reachable via heuristic:
  ==1983==                         newarray           : 4,264 bytes in 1 blocks
  ==1983==         suppressed: 0 bytes in 0 blocks
  ==1983== Reachable blocks (those to which a pointer was found) are not shown.
  ==1983== To see them, rerun with: --leak-check=full --show-leak-kinds=all
  ==1983== 
  ==1983== For lists of detected and suppressed errors, rerun with: -s
  ==1983== ERROR SUMMARY: 6 errors from 6 contexts (suppressed: 0 from 0)
  -------------------------------------------------------------------------

@jennybc
Copy link
Member Author

jennybc commented Feb 26, 2025

gcc-asan result seen in a newly created container thanks to @gaborcsardi

workflow file: https://github.com/gaborcsardi/readxl/blob/main/.github/workflows/rhub.yaml

https://github.com/gaborcsardi/readxl/actions/runs/13551226445/job/37875640249#step:6:779

https://github.com/gaborcsardi/readxl/actions/runs/13551226445/job/37876261692#step:6:1588

very similar to the gcc-UBSAN from CRAN for readxl v1.4.3 and gcc-san result from incoming CRAN checks on readxl v1.4.4

Key bits:

libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'
libxls/xls.c:481:75: runtime error: index 1 out of bounds for type 'BYTE [1]'
libxls/xls.c:598:54: runtime error: index 1 out of bounds for type 'WORD [1]'
Click to expand, warning in `excel_sheets()` examples
> ### Name: excel_sheets
  > ### Title: List all sheets in an excel spreadsheet
  > ### Aliases: excel_sheets
  > 
  > ### ** Examples
  > 
  > excel_sheets(readxl_example("datasets.xlsx"))
  [1] "mtcars"   "chickwts" "quakes"  
  > excel_sheets(readxl_example("datasets.xls"))
  [1] "mtcars"   "chickwts" "quakes"  
  > 
  > # To load all sheets in a workbook, use lapply()
  > path <- readxl_example("datasets.xls")
  > lapply(excel_sheets(path), read_excel, path = path)
  libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
      #0 0x7ffba29e97fa in xls_addCell libxls/xls.c:583
      #1 0x7ffba29e97fa in xls_parseWorkSheet libxls/xls.c:1384
      #2 0x7ffba29966c8 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/XlsCellSet.h:61
      #3 0x7ffba29a72b9 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/SheetView.h:46
      #4 0x7ffba29b245c in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:25
      #5 0x7ffba29253b9 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:82
      #6 0x7ffba288cf98 in _readxl_read_xls_ /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/cpp11.cpp:12
      #7 0x7ffbcda51385 in R_doDotCall /tmp/R-devel/src/main/dotcode.c:790
      #8 0x7ffbcda8f7cd in bcEval_loop /tmp/R-devel/src/main/eval.c:8668
      #9 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #10 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #11 0x7ffbcdaa22da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #12 0x7ffbcdaa2d12 in forcePromise /tmp/R-devel/src/main/eval.c:976
      #13 0x7ffbcdaa25f7 in forcePromise /tmp/R-devel/src/main/eval.c:956
      #14 0x7ffbcdaa25f7 in Rf_eval /tmp/R-devel/src/main/eval.c:1193
      #15 0x7ffbcdaf4568 in do_usemethod /tmp/R-devel/src/main/objects.c:575
      #16 0x7ffbcda93eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #17 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #18 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #19 0x7ffbcdaa22da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #20 0x7ffbcdaa46fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #21 0x7ffbcdaa54d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #22 0x7ffbcdaa7fa2 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #23 0x7ffbcdaa7fa2 in R_forceAndCall /tmp/R-devel/src/main/eval.c:2460
      #24 0x7ffbcd9ca667 in do_lapply /tmp/R-devel/src/main/apply.c:75
      #25 0x7ffbcdaf13c5 in do_internal /tmp/R-devel/src/main/names.c:1411
      #26 0x7ffbcda93eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #27 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #28 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #29 0x7ffbcdaa22da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #30 0x7ffbcdaa46fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #31 0x7ffbcdaa54d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #32 0x7ffbcdaa2405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #33 0x7ffbcdaa2405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #34 0x7ffbcdadeb60 in Rf_ReplIteration /tmp/R-devel/src/main/main.c:265
      #35 0x7ffbcdadeebf in R_ReplConsole /tmp/R-devel/src/main/main.c:317
      #36 0x7ffbcdadef8f in run_Rmainloop /tmp/R-devel/src/main/main.c:1219
      #37 0x40108e in main /tmp/R-devel/src/main/Rmain.c:29
      #38 0x7ffbcb038087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #39 0x7ffbcb03814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #40 0x4010c4 in _start (/opt/R/devel-gcc14/lib/R/bin/exec/R+0x4010c4) (BuildId: c7daf7a975eba337fa710555c070dd5ae2f9c7cb)
  
  libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'
      #0 0x7ffba29e986b in xls_addCell libxls/xls.c:584
      #1 0x7ffba29e986b in xls_parseWorkSheet libxls/xls.c:1384
      #2 0x7ffba29966c8 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/XlsCellSet.h:61
      #3 0x7ffba29a72b9 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/SheetView.h:46
      #4 0x7ffba29b245c in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:25
      #5 0x7ffba29253b9 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:82
      #6 0x7ffba288cf98 in _readxl_read_xls_ /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/cpp11.cpp:12
      #7 0x7ffbcda51385 in R_doDotCall /tmp/R-devel/src/main/dotcode.c:[790](https://github.com/gaborcsardi/readxl/actions/runs/13551226445/job/37875640249#step:6:798)
      #8 0x7ffbcda8f7cd in bcEval_loop /tmp/R-devel/src/main/eval.c:8668
      #9 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #10 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #11 0x7ffbcdaa22da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #12 0x7ffbcdaa2d12 in forcePromise /tmp/R-devel/src/main/eval.c:976
      #13 0x7ffbcdaa25f7 in forcePromise /tmp/R-devel/src/main/eval.c:956
      #14 0x7ffbcdaa25f7 in Rf_eval /tmp/R-devel/src/main/eval.c:1193
      #15 0x7ffbcdaf4568 in do_usemethod /tmp/R-devel/src/main/objects.c:575
      #16 0x7ffbcda93eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #17 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #18 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #19 0x7ffbcdaa22da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #20 0x7ffbcdaa46fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #21 0x7ffbcdaa54d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #22 0x7ffbcdaa7fa2 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #23 0x7ffbcdaa7fa2 in R_forceAndCall /tmp/R-devel/src/main/eval.c:2460
      #24 0x7ffbcd9ca667 in do_lapply /tmp/R-devel/src/main/apply.c:75
      #25 0x7ffbcdaf13c5 in do_internal /tmp/R-devel/src/main/names.c:1411
      #26 0x7ffbcda93eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #27 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #28 0x7ffbcdaa1eb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #29 0x7ffbcdaa22da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #30 0x7ffbcdaa46fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #31 0x7ffbcdaa54d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #32 0x7ffbcdaa2405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #33 0x7ffbcdaa2405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #34 0x7ffbcdadeb60 in Rf_ReplIteration /tmp/R-devel/src/main/main.c:265
      #35 0x7ffbcdadeebf in R_ReplConsole /tmp/R-devel/src/main/main.c:317
      #36 0x7ffbcdadef8f in run_Rmainloop /tmp/R-devel/src/main/main.c:1219
      #37 0x40108e in main /tmp/R-devel/src/main/Rmain.c:29
      #38 0x7ffbcb03[808](https://github.com/gaborcsardi/readxl/actions/runs/13551226445/job/37875640249#step:6:816)7 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #39 0x7ffbcb03814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #40 0x4010c4 in _start (/opt/R/devel-gcc14/lib/R/bin/exec/R+0x4010c4) (BuildId: c7daf7a975eba337fa710555c070dd5ae2f9c7cb)
Click to expand, warning from `test_check("readxl")`
> test_check("readxl")
  libxls/xls.c:583:51: runtime error: index 1 out of bounds for type '<unknown> [1]'
      #0 0x7ffaa21e97fa in xls_addCell libxls/xls.c:583
      #1 0x7ffaa21e97fa in xls_parseWorkSheet libxls/xls.c:1384
      #2 0x7ffaa21966c8 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/XlsCellSet.h:61
      #3 0x7ffaa21a72b9 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/SheetView.h:46
      #4 0x7ffaa21b245c in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:25
      #5 0x7ffaa21253b9 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:82
      #6 0x7ffaa208cf98 in _readxl_read_xls_ /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/cpp11.cpp:12
      #7 0x7ffaceecf385 in R_doDotCall /tmp/R-devel/src/main/dotcode.c:790
      #8 0x7ffacef0d7cd in bcEval_loop /tmp/R-devel/src/main/eval.c:8668
      #9 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #10 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #11 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #12 0x7ffacef20d12 in forcePromise /tmp/R-devel/src/main/eval.c:976
      #13 0x7ffacef205f7 in forcePromise /tmp/R-devel/src/main/eval.c:956
      #14 0x7ffacef205f7 in Rf_eval /tmp/R-devel/src/main/eval.c:1193
      #15 0x7ffacef72568 in do_usemethod /tmp/R-devel/src/main/objects.c:575
      #16 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #17 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #18 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #19 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #20 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #21 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #22 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #23 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #24 0x7ffacef259a3 in do_set /tmp/R-devel/src/main/eval.c:3567
      #25 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #26 0x7ffacef242ba in do_begin /tmp/R-devel/src/main/eval.c:2996
      #27 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #28 0x7ffacef26f5e in do_eval /tmp/R-devel/src/main/eval.c:3941
      #29 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #30 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #31 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #32 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #33 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #34 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #35 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #36 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #37 0x7ffacef27473 in do_eval /tmp/R-devel/src/main/eval.c:3959
      #38 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #39 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #40 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #41 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #42 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #43 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #44 0x7ffacef25fa2 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #45 0x7ffacef25fa2 in R_forceAndCall /tmp/R-devel/src/main/eval.c:2460
      #46 0x7ffacee48667 in do_lapply /tmp/R-devel/src/main/apply.c:75
      #47 0x7ffacef6f3c5 in do_internal /tmp/R-devel/src/main/names.c:1411
      #48 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #49 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #50 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #51 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #52 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #53 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #54 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #55 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #56 0x7ffacef5cb60 in Rf_ReplIteration /tmp/R-devel/src/main/main.c:265
      #57 0x7ffacef5cebf in R_ReplConsole /tmp/R-devel/src/main/main.c:317
      #58 0x7ffacef5cf8f in run_Rmainloop /tmp/R-devel/src/main/main.c:1219
      #59 0x40108e in main /tmp/R-devel/src/main/Rmain.c:29
      #60 0x7ffacc438087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #61 0x7ffacc43814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #62 0x4010c4 in _start (/opt/R/devel-gcc14/lib/R/bin/exec/R+0x4010c4) (BuildId: c7daf7a975eba337fa710555c070dd5ae2f9c7cb)
  libxls/xls.c:584:58: runtime error: index 1 out of bounds for type '<unknown> [1]'
      #0 0x7ffaa21e986b in xls_addCell libxls/xls.c:584
      #1 0x7ffaa21e986b in xls_parseWorkSheet libxls/xls.c:1384
      #2 0x7ffaa21966c8 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/XlsCellSet.h:61
      #3 0x7ffaa21a72b9 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/SheetView.h:46
      #4 0x7ffaa21b245c in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:25
      #5 0x7ffaa21253b9 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:82
      #6 0x7ffaa208cf98 in _readxl_read_xls_ /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/cpp11.cpp:12
      #7 0x7ffaceecf385 in R_doDotCall /tmp/R-devel/src/main/dotcode.c:790
      #8 0x7ffacef0d7cd in bcEval_loop /tmp/R-devel/src/main/eval.c:8668
      #9 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #10 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #11 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #12 0x7ffacef20d12 in forcePromise /tmp/R-devel/src/main/eval.c:976
      #13 0x7ffacef205f7 in forcePromise /tmp/R-devel/src/main/eval.c:956
      #14 0x7ffacef205f7 in Rf_eval /tmp/R-devel/src/main/eval.c:1193
      #15 0x7ffacef72568 in do_usemethod /tmp/R-devel/src/main/objects.c:575
      #16 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #17 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #18 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #19 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #20 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #21 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #22 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #23 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #24 0x7ffacef259a3 in do_set /tmp/R-devel/src/main/eval.c:3567
      #25 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #26 0x7ffacef242ba in do_begin /tmp/R-devel/src/main/eval.c:2996
      #27 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #28 0x7ffacef26f5e in do_eval /tmp/R-devel/src/main/eval.c:3941
      #29 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #30 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #31 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #32 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #33 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #34 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #35 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #36 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #37 0x7ffacef27473 in do_eval /tmp/R-devel/src/main/eval.c:3959
      #38 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #39 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #40 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #41 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #42 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #43 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #44 0x7ffacef25fa2 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #45 0x7ffacef25fa2 in R_forceAndCall /tmp/R-devel/src/main/eval.c:2460
      #46 0x7ffacee48667 in do_lapply /tmp/R-devel/src/main/apply.c:75
      #47 0x7ffacef6f3c5 in do_internal /tmp/R-devel/src/main/names.c:1411
      #48 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #49 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #50 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #51 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #52 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #53 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #54 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #55 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #56 0x7ffacef5cb60 in Rf_ReplIteration /tmp/R-devel/src/main/main.c:265
      #57 0x7ffacef5cebf in R_ReplConsole /tmp/R-devel/src/main/main.c:317
      #58 0x7ffacef5cf8f in run_Rmainloop /tmp/R-devel/src/main/main.c:1219
      #59 0x40108e in main /tmp/R-devel/src/main/Rmain.c:29
      #60 0x7ffacc438087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #61 0x7ffacc43814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #62 0x4010c4 in _start (/opt/R/devel-gcc14/lib/R/bin/exec/R+0x4010c4) (BuildId: c7daf7a975eba337fa710555c070dd5ae2f9c7cb)
libxls/xls.c:481:75: runtime error: index 1 out of bounds for type 'BYTE [1]'
      #0 0x7ffaa21da1a7 in xls_isCellTooSmall libxls/xls.c:481
      #1 0x7ffaa21e318d in xls_preparseWorkSheet libxls/xls.c:1196
      #2 0x7ffaa21e318d in xls_parseWorkSheet libxls/xls.c:1265
      #3 0x7ffaa21966c8 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/XlsCellSet.h:61
      #4 0x7ffaa21a72b9 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/SheetView.h:46
      #5 0x7ffaa21b245c in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:25
      #6 0x7ffaa21253b9 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:82
      #7 0x7ffaa208cf98 in _readxl_read_xls_ /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/cpp11.cpp:12
      #8 0x7ffaceecf385 in R_doDotCall /tmp/R-devel/src/main/dotcode.c:790
      #9 0x7ffacef0d7cd in bcEval_loop /tmp/R-devel/src/main/eval.c:8668
      #10 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #11 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #12 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #13 0x7ffacef20d12 in forcePromise /tmp/R-devel/src/main/eval.c:976
      #14 0x7ffacef205f7 in forcePromise /tmp/R-devel/src/main/eval.c:956
      #15 0x7ffacef205f7 in Rf_eval /tmp/R-devel/src/main/eval.c:1193
      #16 0x7ffacef72568 in do_usemethod /tmp/R-devel/src/main/objects.c:575
      #17 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #18 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #19 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #20 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #21 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #22 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #23 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #24 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #25 0x7ffacef259a3 in do_set /tmp/R-devel/src/main/eval.c:3567
      #26 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #27 0x7ffacef242ba in do_begin /tmp/R-devel/src/main/eval.c:2996
      #28 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #29 0x7ffacef26f5e in do_eval /tmp/R-devel/src/main/eval.c:3941
      #30 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #31 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #32 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #33 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #34 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #35 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #36 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #37 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #38 0x7ffacef27473 in do_eval /tmp/R-devel/src/main/eval.c:3959
      #39 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #40 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #41 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #42 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #43 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #44 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #45 0x7ffacef25fa2 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #46 0x7ffacef25fa2 in R_forceAndCall /tmp/R-devel/src/main/eval.c:2460
      #47 0x7ffacee48667 in do_lapply /tmp/R-devel/src/main/apply.c:75
      #48 0x7ffacef6f3c5 in do_internal /tmp/R-devel/src/main/names.c:1411
      #49 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #50 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #51 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #52 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #53 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #54 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #55 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #56 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #57 0x7ffacef5cb60 in Rf_ReplIteration /tmp/R-devel/src/main/main.c:265
      #58 0x7ffacef5cebf in R_ReplConsole /tmp/R-devel/src/main/main.c:317
      #59 0x7ffacef5cf8f in run_Rmainloop /tmp/R-devel/src/main/main.c:1219
      #60 0x40108e in main /tmp/R-devel/src/main/Rmain.c:29
      #61 0x7ffacc438087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #62 0x7ffacc43814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #63 0x4010c4 in _start (/opt/R/devel-gcc14/lib/R/bin/exec/R+0x4010c4) (BuildId: c7daf7a975eba337fa710555c070dd5ae2f9c7cb)
 libxls/xls.c:598:54: runtime error: index 1 out of bounds for type 'WORD [1]'
      #0 0x7ffaa21e911a in xls_addCell libxls/xls.c:598
      #1 0x7ffaa21e911a in xls_parseWorkSheet libxls/xls.c:1384
      #2 0x7ffaa21966c8 in XlsCellSet::XlsCellSet(XlsWorkBook, int, cpp11::r_vector<int>, bool, Spinner) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/XlsCellSet.h:61
      #3 0x7ffaa21a72b9 in SheetView<Xls>::SheetView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cpp11::r_vector<int>, bool, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/SheetView.h:46
      #4 0x7ffaa21b245c in cpp11::r_vector<SEXPREC*> read_this_<Xls>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:25
      #5 0x7ffaa21253b9 in read_xls_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, cpp11::r_vector<int>, bool, cpp11::sexp, cpp11::r_vector<cpp11::r_string>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool, int, bool) /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/Read.cpp:82
      #6 0x7ffaa208cf98 in _readxl_read_xls_ /__w/readxl/readxl/check/readxl.Rcheck/00_pkg_src/readxl/src/cpp11.cpp:12
      #7 0x7ffaceecf385 in R_doDotCall /tmp/R-devel/src/main/dotcode.c:790
      #8 0x7ffacef0d7cd in bcEval_loop /tmp/R-devel/src/main/eval.c:8668
      #9 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #10 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #11 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #12 0x7ffacef20d12 in forcePromise /tmp/R-devel/src/main/eval.c:976
      #13 0x7ffacef205f7 in forcePromise /tmp/R-devel/src/main/eval.c:956
      #14 0x7ffacef205f7 in Rf_eval /tmp/R-devel/src/main/eval.c:1193
      #15 0x7ffacef72568 in do_usemethod /tmp/R-devel/src/main/objects.c:575
      #16 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #17 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #18 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #19 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #20 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #21 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #22 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #23 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #24 0x7ffacef259a3 in do_set /tmp/R-devel/src/main/eval.c:3567
      #25 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #26 0x7ffacef242ba in do_begin /tmp/R-devel/src/main/eval.c:2996
      #27 0x7ffacef206e5 in Rf_eval /tmp/R-devel/src/main/eval.c:1232
      #28 0x7ffacef26f5e in do_eval /tmp/R-devel/src/main/eval.c:3941
      #29 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #30 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #31 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #32 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #33 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #34 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #35 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #36 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #37 0x7ffacef27473 in do_eval /tmp/R-devel/src/main/eval.c:3959
      #38 0x7ffacef120f7 in bcEval_loop /tmp/R-devel/src/main/eval.c:8118
      #39 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #40 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #41 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #42 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #43 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #44 0x7ffacef25fa2 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #45 0x7ffacef25fa2 in R_forceAndCall /tmp/R-devel/src/main/eval.c:2460
      #46 0x7ffacee48667 in do_lapply /tmp/R-devel/src/main/apply.c:75
      #47 0x7ffacef6f3c5 in do_internal /tmp/R-devel/src/main/names.c:1411
      #48 0x7ffacef11eee in bcEval_loop /tmp/R-devel/src/main/eval.c:8138
      #49 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7501
      #50 0x7ffacef1feb3 in bcEval /tmp/R-devel/src/main/eval.c:7486
      #51 0x7ffacef202da in Rf_eval /tmp/R-devel/src/main/eval.c:1167
      #52 0x7ffacef226fd in R_execClosure /tmp/R-devel/src/main/eval.c:2393
      #53 0x7ffacef234d6 in applyClosure_core /tmp/R-devel/src/main/eval.c:2306
      #54 0x7ffacef20405 in Rf_applyClosure /tmp/R-devel/src/main/eval.c:2328
      #55 0x7ffacef20405 in Rf_eval /tmp/R-devel/src/main/eval.c:1280
      #56 0x7ffacef5cb60 in Rf_ReplIteration /tmp/R-devel/src/main/main.c:265
      #57 0x7ffacef5cebf in R_ReplConsole /tmp/R-devel/src/main/main.c:317
      #58 0x7ffacef5cf8f in run_Rmainloop /tmp/R-devel/src/main/main.c:1219
      #59 0x40108e in main /tmp/R-devel/src/main/Rmain.c:29
      #60 0x7ffacc438087 in __libc_start_call_main (/lib64/libc.so.6+0x2a087) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #61 0x7ffacc43814a in __libc_start_main_impl (/lib64/libc.so.6+0x2a14a) (BuildId: c8c3fa52aaee3f5d73b6fd862e39e9d4c010b6ba)
      #62 0x4010c4 in _start (/opt/R/devel-gcc14/lib/R/bin/exec/R+0x4010c4) (BuildId: c7daf7a975eba337fa710555c070dd5ae2f9c7cb)

@jeroen
Copy link
Contributor

jeroen commented Feb 28, 2025

I think this is a bug in libxls. Posted it here: libxls/libxls#144 (we fixed the same problem in mongo-c-driver last week)

@jennybc
Copy link
Member Author

jennybc commented Feb 28, 2025

Yeah I already started investigating such a solution yesterday in this branch: https://github.com/tidyverse/readxl/compare/fix-sanitizer-warning. I made 1 interesting commit there (after faffing about with GHA) that made some of the warnings go away (it's coming from multiple locations).

There is relevant history around readxl and libxls here: libxls/libxls#15.

@jeroen
Copy link
Contributor

jeroen commented Feb 28, 2025

Ah sorry didn't mean to cross you! Seems like we found the same solution, which is a good sign :)

This was referenced Feb 28, 2025
@jennybc
Copy link
Member Author

jennybc commented Mar 6, 2025

Brief recap of some history, now that I've re-uploaded all of this into my head. I may or may not return to add more links to specific resources or refs.

  • libxls has historically used flexible array members (FAMs) in structs such as MULRK (see https://github.com/libxls/libxls/blame/811408fa031f2f0c1a2e6612bf58dc64bea6d450/include/libxls/xlsstruct.h#L190-L200)
  • FAMs are valid constructs for C but not for C++ (see Compatibility of C and C++)
  • This presents problems for readxl, which requires the use of a C++ compiler, including for the C code
  • Historically, readxl had patches in which FAMs were artificially declared to have fixed length, usually (always?) length 1
  • At some point, these pragmatic patches became incompatible with other changes happening in libxls
  • In an ideal world, libxls could be modified to not use FAMs, but no one has the motivation or bandwidth to do this, yet we all want libxls to be C++ compatible
  • Several years ago libxls basically adopted readxl's polite fiction re: the FAMs, along with other necessary changes (see Zero size arrays and flexible array members libxls/libxls#15 and libxls/libxls@b3fed3c)
  • That state has recently become untenable, due to increased strict sanitizer checks by CRAN
  • The fix for this issue is the latest instalment in this long-running sequence of adaptations aimed at keeping readxl compliant with CRAN's requirements, even as libxls still (effectively) uses FAMs

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

Successfully merging a pull request may close this issue.

2 participants