Mercurial > hg > octave-lyh > gnulib-hg
changeset 13398:9805d62bae4f
Avoid relocwrapper link errors due to gnulib replacement functions.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Wed, 09 Jun 2010 15:30:40 +0200 |
parents | 758ef73803db |
children | aae05084c143 |
files | ChangeLog lib/areadlink.c modules/areadlink |
diffstat | 3 files changed, 24 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-06-09 Bruno Haible <bruno@clisp.org> + + Avoid relocwrapper link errors due to gnulib replacement functions. + * lib/areadlink.c: Use the system's malloc, realloc functions. + (areadlink): Set errno to ENOMEM explicitly. + * modules/areadlink (Depends-on): Remove malloc-posix. + Reported by Ben Pfaff <blp@cs.stanford.edu>. + 2010-06-09 Bruno Haible <bruno@clisp.org> Avoid relocwrapper link errors due to gnulib replacement functions.
--- a/lib/areadlink.c +++ b/lib/areadlink.c @@ -35,6 +35,10 @@ # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif +/* Use the system functions, not the gnulib overrides in this file. */ +#undef malloc +#undef realloc + /* The initial buffer size for the link value. A power of 2 detects arithmetic overflow earlier, but is not required. */ enum { @@ -85,8 +89,12 @@ { buffer = (char *) malloc (link_length); if (buffer == NULL) - /* errno is ENOMEM. */ - return NULL; + { + /* It's easier to set errno to ENOMEM than to rely on the + 'malloc-posix' gnulib module. */ + errno = ENOMEM; + return NULL; + } memcpy (buffer, initial_buf, link_length); } else @@ -113,7 +121,11 @@ } buffer = (char *) malloc (buf_size); if (buffer == NULL) - /* errno is ENOMEM. */ - return NULL; + { + /* It's easier to set errno to ENOMEM than to rely on the + 'malloc-posix' gnulib module. */ + errno = ENOMEM; + return NULL; + } } }