# HG changeset patch # User Bruno Haible # Date 1276090240 -7200 # Node ID 9805d62bae4fe90bc7da81161357dad249116167 # Parent 758ef73803dbb8a518cd32e40beaaa65aa618307 Avoid relocwrapper link errors due to gnulib replacement functions. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-06-09 Bruno Haible + + 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 . + 2010-06-09 Bruno Haible Avoid relocwrapper link errors due to gnulib replacement functions. diff --git a/lib/areadlink.c b/lib/areadlink.c --- 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; + } } } diff --git a/modules/areadlink b/modules/areadlink --- a/modules/areadlink +++ b/modules/areadlink @@ -6,7 +6,6 @@ lib/areadlink.c Depends-on: -malloc-posix readlink ssize_t stdint