On x86_64 with glibc-2.30, gcc 9.2 is giving:
error: argument 2 value '
18446744073709551615'
exceeds maximum object size
9223372036854775807
[-Werror=alloc-size-larger-than=]
The details of this restriction are discussed at:
https://stackoverflow.com/q/
42574890/4421
* lib/read-file.c: s/SIZE_MAX/PTRDIFF_MAX/
+2020-02-02 Pádraig Brady <P@draigBrady.com>
+
+ read-file: reduce max size from SIZE_MAX to PTRDIFF_MAX
+ On x86_64 with glibc-2.30, gcc 9.2 is giving:
+ error: argument 2 value '18446744073709551615'
+ exceeds maximum object size 9223372036854775807
+ [-Werror=alloc-size-larger-than=]
+ The details of this restriction are discussed at:
+ https://stackoverflow.com/q/42574890/4421
+ * lib/read-file.c: s/SIZE_MAX/PTRDIFF_MAX/
+
2020-02-02 Pádraig Brady <P@draigBrady.com>
sysctl.h: avoid including on glibc
/* Get ftello. */
#include <stdio.h>
-/* Get SIZE_MAX. */
+/* Get PTRDIFF_MAX. */
#include <stdint.h>
/* Get malloc, realloc, free. */
off_t alloc_off = st.st_size - pos;
/* '1' below, accounts for the trailing NUL. */
- if (SIZE_MAX - 1 < alloc_off)
+ if (PTRDIFF_MAX - 1 < alloc_off)
{
errno = ENOMEM;
return NULL;
{
char *new_buf;
- if (alloc == SIZE_MAX)
+ if (alloc == PTRDIFF_MAX)
{
save_errno = ENOMEM;
break;
}
- if (alloc < SIZE_MAX - alloc / 2)
+ if (alloc < PTRDIFF_MAX - alloc / 2)
alloc = alloc + alloc / 2;
else
- alloc = SIZE_MAX;
+ alloc = PTRDIFF_MAX;
if (!(new_buf = realloc (buf, alloc)))
{