最近我在 CRAN 上收到了我的一些包裹的以下错误消息。
warning: format string is not a string literal (potentially insecure)
请参阅以下链接以获取确切的错误消息(CRAN 上有许多其他软件包最近收到了此错误消息)。
不幸的是,我无法重现此错误,也无法找到其来源。我的假设是,这个错误在某种程度上与
stop()
函数有关,因为我没有在 Rcpp 代码的其他部分使用字符串。错误还涉及 RcppExports.cpp 文件的部分,如下所示:
Rboolean rcpp_isError_gen = Rf_inherits(rcpp_result_gen, "try-error");
if (rcpp_isError_gen) {
SEXP rcpp_msgSEXP_gen = Rf_asChar(rcpp_result_gen);
UNPROTECT(1);
Rf_error(CHAR(rcpp_msgSEXP_gen));
}
但我的琴弦似乎没有什么特别的,所以我不知道如何解决这个问题。我对
stop()
函数的调用如下所示:
if (degree <= 0)
{
stop("degree should be positive integer");
}
因此,根据这个this问题的答案,我没有使用可能导致此类问题的特殊格式。请帮我找出这个错误消息。
将非常感谢您的帮助!
请参阅问题#1287和PR#1288中存储库的扩展讨论,即这里,特别是评论以及rcpp-devel列表上的扩展帖子我今天也做了。
简而言之,您需要安装更新的
Rcpp
版本(给出说明),然后使用它来更新您的 RcppExports.cpp
。完成后,您可以在增加的版本号下上传软件包的更新版本。