Skip to content
Back to formatted view

Raw Message

Message-ID: <20241217131541.710bbfe6@arachnoid>
Date: 2024-12-17T10:15:41Z
From: Ivan Krylov
Subject: [R-pkg-devel]  [CRAN-pretest-archived] CRAN Submission NMRphasing 1.0.6
In-Reply-To: <YQBPR0101MB5045E4A7916B3292C50F54FFC6042@YQBPR0101MB5045.CANPRD01.PROD.OUTLOOK.COM>

Dear Aixiang,

Welcome to R-package-devel!

? Tue, 17 Dec 2024 09:47:26 +0000
Aixiang Jiang <aijiang at bccrc.ca> ?????:

> I am really confused by the error, which did not happen in the
> previous versions.
> 
> Since I have not changed my code at all, the possible reason is that
> the external function is changed.

That's right, you've found a bug in the MassSpecWavelet package. It's
been introduced more than two years ago:

https://code.bioconductor.org/browse/MassSpecWavelet/commit/ea0f727ffc391fa2643f858844836d8297742433

The code finds out the length of the vector and a pointer to the start
of its data:

>> double *x;

>> R_xlen_t xlength = Rf_length(s_x);

>> x = REAL(s_x);

Later, the code tries to limit the offset into the array...

>> i2 = i2 >= xlength ? xlength : i2;

...and accesses the data at this offset:

>> if (xmax > x[i2] && xmax > x[j-1]) {

Unfortunately, it is an error to access data at i2 equal to xlength.
The correct maximum for i2 must be xlength-1, the last valid element of
x.

Try reporting this to the maintainer at
<https://support.bioconductor.org/> or at
<http://github.com/zeehio/MassSpecWavelet/issues>.

-- 
Best regards,
Ivan