summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/esp8266/posix_helpers.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/ports/esp8266/posix_helpers.c b/ports/esp8266/posix_helpers.c
index f8e4880d2..1fc677c5c 100644
--- a/ports/esp8266/posix_helpers.c
+++ b/ports/esp8266/posix_helpers.c
@@ -26,22 +26,33 @@
#include <stdint.h>
#include <stdio.h>
+#include <errno.h>
#include "py/mphal.h"
#include "py/gc.h"
// Functions for external libs like axTLS, BerkeleyDB, etc.
void *malloc(size_t size) {
- return gc_alloc(size, false);
+ void *p = gc_alloc(size, false);
+ if (p == NULL) {
+ // POSIX requires ENOMEM to be set in case of error
+ errno = ENOMEM;
+ }
+ return p;
}
void free(void *ptr) {
gc_free(ptr);
}
void *calloc(size_t nmemb, size_t size) {
- return m_malloc0(nmemb * size);
+ return malloc(nmemb * size);
}
void *realloc(void *ptr, size_t size) {
- return gc_realloc(ptr, size, true);
+ void *p = gc_realloc(ptr, size, true);
+ if (p == NULL) {
+ // POSIX requires ENOMEM to be set in case of error
+ errno = ENOMEM;
+ }
+ return p;
}
#define PLATFORM_HTONL(_n) ((uint32_t)( (((_n) & 0xff) << 24) | (((_n) & 0xff00) << 8) | (((_n) >> 8) & 0xff00) | (((_n) >> 24) & 0xff) ))