[R-pkg-devel] [CRAN-pretest-archived] CRAN Submission NMRphasing 1.0.6
Aixiang Jiang
@|j|@ng @end|ng |rom bccrc@c@
Tue Dec 17 22:33:34 CET 2024
Thank you - Duncan!
I ended up revising the C functions and converted into R functions, which are then included in my own package.
Best,
Aixiang
________________________________
From: Duncan Murdoch <murdoch.duncan using gmail.com>
Sent: Tuesday, December 17, 2024 6:05 AM
To: Ivan Krylov <ikrylov using disroot.org>; Aixiang Jiang <aijiang using bccrc.ca>
Cc: r-package-devel using r-project.org <r-package-devel using r-project.org>
Subject: Re: [R-pkg-devel] [CRAN-pretest-archived] CRAN Submission NMRphasing 1.0.6
CAUTION: EXTERNAL EMAIL. Verify both the sender's email and name. Avoid links/attachments unless expected. Report any suspicious message by forwarding it as an attachment to spammail using bccrc.ca
Nice spotting!
Just for fun, I just asked chatgpt if there were any other problems in
that code. It spotted 3, but not the one you found. Two of them were
definitely bogus, but this one might not be:
On line 471 kmax is used, but it may not be initialized.
Duncan Murdoch
On 2024-12-17 5:15 a.m., Ivan Krylov via R-package-devel wrote:
> Dear Aixiang,
>
> Welcome to R-package-devel!
>
> � Tue, 17 Dec 2024 09:47:26 +0000
> Aixiang Jiang <aijiang using 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>.
>
[[alternative HTML version deleted]]
More information about the R-package-devel
mailing list