-
Notifications
You must be signed in to change notification settings - Fork 4k
Description
Description
With latest R-devel (R Under development (unstable) (2023-11-24 r85626)) + clang 15.0.7, R CMD check raises the following WARNING.
* checking whether package 'lightgbm' can be installed ... [108s/108s] WARNING
Found the following significant warnings:
lightgbm_R.cpp:159:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:191:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
....
full logs (click me)
Found the following significant warnings:
lightgbm_R.cpp:159:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:191:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:216:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:243:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:260:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:308:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:320:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:330:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:362:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:400:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:419:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:430:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:440:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:451:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:462:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:478:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:493:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:507:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:538:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:548:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:558:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:568:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:579:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:590:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:599:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:608:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:629:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:637:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:648:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:658:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:668:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:717:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:732:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:744:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:756:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:794:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:813:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:848:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:876:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:905:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:934:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:951:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:979:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1049:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1073:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1098:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1109:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1122:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1146:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1171:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1191:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
lightgbm_R.cpp:1212:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
See '/__w/LightGBM/LightGBM/lightgbm.Rcheck/00install.out' for details.
Reproducible example
See the latest r-package (debian, R-devel, clang) CI job run on master (build link).
That can be reproduced using this configuration:
LightGBM/.github/workflows/r_package.yml
Lines 260 to 265 in 2ee3ec8
| test-r-debian-clang: | |
| name: r-package (debian, R-devel, clang) | |
| timeout-minutes: 60 | |
| runs-on: ubuntu-latest | |
| container: rhub/debian-clang-devel | |
| steps: |
Environment info
LightGBM version or commit hash: 2ee3ec8
Additional Comments
This would likely lead to a rejection of a new submission on CRAN.
It will also cause CI failures in this repo until it's either fixed or until we temporarily allow that WARNING in CI.
All of the lines noted in warnings are uses of the R_API_END() preprocessor macro
LightGBM/R-package/src/lightgbm_R.cpp
Line 159 in 2ee3ec8
| R_API_END(); |
which looks like this:
LightGBM/R-package/src/lightgbm_R.cpp
Lines 38 to 44 in 2ee3ec8
| #define R_API_END() } \ | |
| catch(LGBM_R_ErrorClass &cont) { R_ContinueUnwind(cont.cont_token); } \ | |
| catch(std::exception& ex) { LGBM_R_save_exception_msg(ex); } \ | |
| catch(std::string& ex) { LGBM_R_save_exception_msg(ex); } \ | |
| catch(...) { Rf_error("unknown exception"); } \ | |
| Rf_error(R_errmsg_buffer); \ | |
| return R_NilValue; /* <- won't be reached */ |