From 31c645920116d05d4cf19bf04ed098d61ac338b9 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sun, 6 Aug 2017 23:12:29 +0200 Subject: [PATCH] Fix overflow issue. --- m-string.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/m-string.h b/m-string.h index efa494f7..d462a6bb 100644 --- a/m-string.h +++ b/m-string.h @@ -148,8 +148,13 @@ stringi_fit2size (string_t v, size_t size) // is not fullfilled. if (size > v->alloc) { size_t alloc = size < 16 ? 16 : (size + size / 2); + if (M_UNLIKELY (alloc <= v->alloc)) { + M_MEMORY_FULL(sizeof (char) * alloc); + // NOTE: Return is broken... + return; + } char *ptr = M_MEMORY_REALLOC (char, v->ptr, alloc); - if (ptr == NULL) { + if (M_UNLIKELY (ptr == NULL)) { M_MEMORY_FULL(sizeof (char) * alloc); // NOTE: Return is broken... return;