R_OpenSiteFile: Do not use a null ptr as filename in fopen (PR#312)

guido@hal.stat.unipd.it guido@hal.stat.unipd.it
Thu, 4 Nov 1999 10:50:55 +0100 (MET)


On Thu, Nov 04, 1999 at 10:09:05AM +0100, hoffmann@ehmgs2.et.tu-dresden.de wrote:
> 
> The reason is, that in unix/sys-common.c in R_OpenSiteFile() fopen 
> is called with a null ptr as filename (because this is the outcome 
> of getenv()).
> 
> Although most compilers seem to interpret this as "file not found",
> this is an undefined behavior concerning to all C standards I could get
> hold of.
> 
> A request in comp.lang.c gave the following response:
> ...
> Your program should crash. If you might get a NULL pointer as
> a filename, you should have a conditional statement to handle
> that case.
> ...
>

The same happens also under Windows where, for this reason, 
'R_fopen' is defined as
 
FILE *R_fopen(const char *filename, const char *mode)
{
    if (!filename)
	return NULL;
    return (fopen(filename, mode));
}

g.

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._