summaryrefslogtreecommitdiff
path: root/malloc/dynarray_emplace_enlarge.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-08-30 20:10:56 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-08-30 20:10:56 +0200
commit5898f4548efdcd7c0fd437a74eeb80facc51a117 (patch)
tree3388b5acb0e092a716110ba3cfe176b01d3e72d8 /malloc/dynarray_emplace_enlarge.c
parenta9da0bb2667ab20f1dbcd0a9ae6846db02fbc96a (diff)
downloadglibc-5898f4548efdcd7c0fd437a74eeb80facc51a117.tar.gz
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.c8
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;