Rcpp 警告:格式字符串不是字符串文字(可能不安全)

问题描述 投票:0回答:1

最近我在 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问题的答案,我没有使用可能导致此类问题的特殊格式。请帮我找出这个错误消息。

将非常感谢您的帮助!

string rcpp cran rcpparmadillo
1个回答
0
投票

请参阅问题#1287和PR#1288中存储库的扩展讨论,即这里,特别是评论以及rcpp-devel列表上的扩展帖子我今天也做了。

简而言之,您需要安装更新的

Rcpp
版本(给出说明),然后使用它来更新您的
RcppExports.cpp
。完成后,您可以在增加的版本号下上传软件包的更新版本。

© www.soinside.com 2019 - 2024. All rights reserved.