aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/m4/lib/xmalloc.c
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-10-21 10:21:33 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-10-21 10:21:33 +0000
commit4eca37ecd81a80606e9c2afed5401f15d15e3671 (patch)
treeedb21b983f86981f8ed77704231cbe589bc19bdd /contrib/tools/m4/lib/xmalloc.c
parent7f4d37b99e25e931918580a353dba7eed11407ee (diff)
parentd3ed30f2deefe6a5ed0d07a3018c723749ca5d7b (diff)
downloadydb-4eca37ecd81a80606e9c2afed5401f15d15e3671.tar.gz
Merge branch 'rightlib' into mergelibs-241021-1020
Diffstat (limited to 'contrib/tools/m4/lib/xmalloc.c')
-rw-r--r--contrib/tools/m4/lib/xmalloc.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/contrib/tools/m4/lib/xmalloc.c b/contrib/tools/m4/lib/xmalloc.c
index 57e34b7cdb..7d9c077729 100644
--- a/contrib/tools/m4/lib/xmalloc.c
+++ b/contrib/tools/m4/lib/xmalloc.c
@@ -1,6 +1,6 @@
/* xmalloc.c -- malloc with out of memory checking
- Copyright (C) 1990-2000, 2002-2006, 2008-2013 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000, 2002-2006, 2008-2016 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -93,11 +93,11 @@ void *
xcalloc (size_t n, size_t s)
{
void *p;
- /* Test for overflow, since some calloc implementations don't have
- proper overflow checks. But omit overflow and size-zero tests if
- HAVE_GNU_CALLOC, since GNU calloc catches overflow and never
- returns NULL if successful. */
- if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s))
+ /* Test for overflow, since objects with size greater than
+ PTRDIFF_MAX cause pointer subtraction to go awry. Omit size-zero
+ tests if HAVE_GNU_CALLOC, since GNU calloc never returns NULL if
+ successful. */
+ if (xalloc_oversized (n, s)
|| (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
xalloc_die ();
return p;