Message-ID: <alpine.LFD.2.00.0901030957120.21928@auk.stats.ox.ac.uk>
Date: 2009-01-03T09:58:49Z
From: Brian Ripley
Subject: (PR#13424) Missing PROTECT in intern_getwd (in util.c)
In-Reply-To: <20090103092508.643B5282EFF6@mail.pubhealth.ku.dk>
On Sat, 3 Jan 2009, milbo at sonic.net wrote:
> Full_Name: Stephen Milborrow
> Version: 2.8.1
> OS: WinXP
> Submission from: (NULL) (198.54.202.150)
>
>
> There is a missing PROTECT in intern_getwd in util.c. The current code is
>
> rval = allocVector(STRSXP, 1);
> SET_STRING_ELT(rval, 0, mkCharCE(buf, CE_UTF8));
>
> and should be (because mkCharCE can allocate memory)
>
> PROTECT(rval = allocVector(STRSXP, 1));
> SET_STRING_ELT(rval, 0, mkCharCE(buf, CE_UTF8));
> UNPROTECT(1);
>
> This was seen in R version 2.8.1 mingw32
And it is code specific to that platform (although you did not say so).
Fixed now in R-patched, thank you.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595