summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-04-03 10:01:09 +0200
committerJohn MacFarlane <jgm@berkeley.edu>2017-04-03 10:01:09 +0200
commit5c2f3341e3c129aeb27f70fe6ca9ed0fea8f2383 (patch)
treed69404aa64ac077e5fcef48105edd780094b1480
parent118ebb338840d67005ee57ec39060d2b68f4ec7c (diff)
Print message to stderr when we abort due to memory demands.
Closes #188. @nwellnhof - could you have a look and let me know if you think this is a bad idea or could be improved?
-rw-r--r--src/buffer.c7
-rw-r--r--src/cmark.c8
2 files changed, 12 insertions, 3 deletions
diff --git a/src/buffer.c b/src/buffer.c
index a6754b6..629f809 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -42,7 +42,12 @@ void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) {
if (target_size < buf->asize)
return;
- if (target_size > (bufsize_t)(INT32_MAX / 2))
+ if (target_size > (bufsize_t)(INT32_MAX / 2)) {
+ fprintf(stderr,
+ "[cmark] cmark_strbuf_grow requests buffer with size > %d, aborting\n",
+ (bufsize_t)(INT32_MAX / 2));
+ abort();
+ }
abort();
/* Oversize the buffer by 50% to guarantee amortized linear time
diff --git a/src/cmark.c b/src/cmark.c
index 0d3bc16..d64237f 100644
--- a/src/cmark.c
+++ b/src/cmark.c
@@ -12,15 +12,19 @@ const char *cmark_version_string() { return CMARK_VERSION_STRING; }
static void *xcalloc(size_t nmem, size_t size) {
void *ptr = calloc(nmem, size);
- if (!ptr)
+ if (!ptr) {
+ fprintf(stderr, "[cmark] calloc returned null pointer, aborting\n");
abort();
+ }
return ptr;
}
static void *xrealloc(void *ptr, size_t size) {
void *new_ptr = realloc(ptr, size);
- if (!new_ptr)
+ if (!new_ptr) {
+ fprintf(stderr, "[cmark] realloc returned null pointer, aborting\n");
abort();
+ }
return new_ptr;
}