diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-08-30 20:10:56 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-08-30 20:10:56 +0200 |
commit | 5898f4548efdcd7c0fd437a74eeb80facc51a117 (patch) | |
tree | 3388b5acb0e092a716110ba3cfe176b01d3e72d8 /malloc/dynarray_emplace_enlarge.c | |
parent | a9da0bb2667ab20f1dbcd0a9ae6846db02fbc96a (diff) | |
download | glibc-5898f4548efdcd7c0fd437a74eeb80facc51a117.tar glibc-5898f4548efdcd7c0fd437a74eeb80facc51a117.tar.gz glibc-5898f4548efdcd7c0fd437a74eeb80facc51a117.tar.bz2 glibc-5898f4548efdcd7c0fd437a74eeb80facc51a117.zip |
dynarray: Set errno on overflow-induced allocation failure
This allows the caller to return directly on such an error, with an
appropriate errno value.
Diffstat (limited to 'malloc/dynarray_emplace_enlarge.c')
-rw-r--r-- | malloc/dynarray_emplace_enlarge.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/malloc/dynarray_emplace_enlarge.c b/malloc/dynarray_emplace_enlarge.c index dfc70017ce..0fb032765c 100644 --- a/malloc/dynarray_emplace_enlarge.c +++ b/malloc/dynarray_emplace_enlarge.c @@ -17,6 +17,7 @@ <http://www.gnu.org/licenses/>. */ #include <dynarray.h> +#include <errno.h> #include <malloc-internal.h> #include <stdlib.h> #include <string.h> @@ -43,8 +44,11 @@ __libc_dynarray_emplace_enlarge (struct dynarray_header *list, { new_allocated = list->allocated + list->allocated / 2 + 1; if (new_allocated <= list->allocated) - /* Overflow. */ - return false; + { + /* Overflow. */ + __set_errno (ENOMEM); + return false; + } } size_t new_size; |