failed malloc()?

Matt matt@use.net
Sat Nov 25 17:24:00 GMT 2000


On Sat, 25 Nov 2000, Christopher Faylor wrote:

> On Sat, Nov 25, 2000 at 03:41:59PM -0800, Matt wrote:
> >I've started reviewing some of the winsup code and had a question as to
> >how to most properly correct unchecked pointers. That is, I know to add a
> >statement to check the freshly created/passed pointer, but not what to do
> >in the instance that pointer is NULL. 
> >
> >Some places in the cygwin code do a system_printf() which is what I will
> >assume is desired, but wanted to check to make sure what the
> >standard/preferred way of handling such things is (if there is one).
> >
> >Here one of the sections of code I am looking at (cygcheck.c:91,92):
> >  paths[num_paths] = (char *) malloc (maxlen + 1);
> >  memcpy (paths[num_paths], s, maxlen);
> 
> Um.  That's not cygwin, that's cygcheck.  Proper programming practice would
> be to check every single malloc and issue an error if there is a problem.
> 
> You can't use system_printf in this case since it isn't cygwin that you're
> looking at.
> 
> It is usually a sign of some severe memory corruption if a program like
> cygcheck isn't able to allocate its own buffers so I am not too worried
> that there is no protection in this code.

I wanted to start with something simple first, and once I got
comfortable/proficient, moving onto cygwin itself. 

What would be the preferred method to output these error messages?

I am using the format "file: function: message". For example,
"cygcheck.cc: get_word(): Readfile returned error (GetLastError)".

Thanks for the help!



--
it's better to burn out
than to fade away




More information about the Cygwin-developers mailing list