[lxc-devel] strdup return value

Michael Tokarev mjt at tls.msk.ru
Wed Nov 18 08:54:16 UTC 2009


Andrian Nord wrote:
> On Wed, Nov 18, 2009 at 02:25:20AM +0300, Michael Tokarev wrote:
>> I wodner why all code checks for malloc return value
>> but almost no places checks for strdup.
> 
> Because this is an error? Probably it should be checked everywhere it
> does not.
> 
>> Maybe it is better idea to define xmalloc()/xstrdup()
>> that aborts if memory allocation failed, instead of
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> scattering error checking all over?
> 
> You mean something like that:
> 
> char *src = "blabla";
> char *dest;
> 
> if (xstrdup(&dest, src)) {
> 	SYSERROR("failed to allocate memory");
> 	return -1;
> }

I mean something like this:

  char *xstrdup(const char *src) {
    char *dest = strdup(src);
    if (!dest) {
       SYSERROR("failed to allocate memory");
       abort();
    }
    return dest;
  }

as used in countless other projects all around the world.

/mjt




More information about the lxc-devel mailing list