+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.
# 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 {
{
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
}
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;
+ }
}
}