2005-10-07 Bob Wilson <bob.wilson@acm.org>
* libc/stdlib/mallocr.c (mALLOc, rEALLOCc, mEMALIGn): Set errno to ENOMEM on failure.
This commit is contained in:
parent
bc037f3a51
commit
f011605a90
@ -1,3 +1,8 @@
|
|||||||
|
2005-10-07 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
|
* libc/stdlib/mallocr.c (mALLOc, rEALLOCc, mEMALIGn): Set errno
|
||||||
|
to ENOMEM on failure.
|
||||||
|
|
||||||
2005-10-06 Ralf Corsepius <ralf.corsepius@rtems.org>
|
2005-10-06 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||||
|
|
||||||
* libc/include/stdint.h: Add [u]int_fast<N>_t types.
|
* libc/include/stdint.h: Add [u]int_fast<N>_t types.
|
||||||
|
@ -268,6 +268,7 @@ extern "C" {
|
|||||||
|
|
||||||
#include <stdio.h> /* needed for malloc_stats */
|
#include <stdio.h> /* needed for malloc_stats */
|
||||||
#include <limits.h> /* needed for overflow checks */
|
#include <limits.h> /* needed for overflow checks */
|
||||||
|
#include <errno.h> /* needed to set errno to ENOMEM */
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
@ -335,6 +336,7 @@ extern void __malloc_unlock();
|
|||||||
#define RDECL struct _reent *reent_ptr;
|
#define RDECL struct _reent *reent_ptr;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define RERRNO reent_ptr->_errno
|
||||||
#define RCALL reent_ptr,
|
#define RCALL reent_ptr,
|
||||||
#define RONECALL reent_ptr
|
#define RONECALL reent_ptr
|
||||||
|
|
||||||
@ -344,6 +346,7 @@ extern void __malloc_unlock();
|
|||||||
#define RARG
|
#define RARG
|
||||||
#define RONEARG
|
#define RONEARG
|
||||||
#define RDECL
|
#define RDECL
|
||||||
|
#define RERRNO errno
|
||||||
#define RCALL
|
#define RCALL
|
||||||
#define RONECALL
|
#define RONECALL
|
||||||
|
|
||||||
@ -2341,7 +2344,10 @@ Void_t* mALLOc(RARG bytes) RDECL size_t bytes;
|
|||||||
|
|
||||||
/* Check for overflow and just fail, if so. */
|
/* Check for overflow and just fail, if so. */
|
||||||
if (nb > INT_MAX || nb < bytes)
|
if (nb > INT_MAX || nb < bytes)
|
||||||
|
{
|
||||||
|
RERRNO = ENOMEM;
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
MALLOC_LOCK;
|
MALLOC_LOCK;
|
||||||
|
|
||||||
@ -2804,7 +2810,10 @@ Void_t* rEALLOc(RARG oldmem, bytes) RDECL Void_t* oldmem; size_t bytes;
|
|||||||
|
|
||||||
/* Check for overflow and just fail, if so. */
|
/* Check for overflow and just fail, if so. */
|
||||||
if (nb > INT_MAX || nb < bytes)
|
if (nb > INT_MAX || nb < bytes)
|
||||||
|
{
|
||||||
|
RERRNO = ENOMEM;
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#if HAVE_MMAP
|
#if HAVE_MMAP
|
||||||
if (chunk_is_mmapped(oldp))
|
if (chunk_is_mmapped(oldp))
|
||||||
@ -3037,7 +3046,10 @@ Void_t* mEMALIGn(RARG alignment, bytes) RDECL size_t alignment; size_t bytes;
|
|||||||
|
|
||||||
/* Check for overflow. */
|
/* Check for overflow. */
|
||||||
if (nb > INT_MAX || nb < bytes)
|
if (nb > INT_MAX || nb < bytes)
|
||||||
|
{
|
||||||
|
RERRNO = ENOMEM;
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
m = (char*)(mALLOc(RCALL nb + alignment + MINSIZE));
|
m = (char*)(mALLOc(RCALL nb + alignment + MINSIZE));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user