From bd1410dff94ee001b04de4a26a8f3ecefa155cb0 Mon Sep 17 00:00:00 2001 From: sprice Date: Mon, 6 Jul 2015 16:54:16 -0700 Subject: [PATCH] Throw exceptions on save buffer failures. --- src/cpp/flann/util/serialization.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/cpp/flann/util/serialization.h b/src/cpp/flann/util/serialization.h index 8c07630..8611e2e 100644 --- a/src/cpp/flann/util/serialization.h +++ b/src/cpp/flann/util/serialization.h @@ -391,6 +391,10 @@ class SaveArchive : public OutputArchive // Construct the buffer char *compBuffer = (char *)malloc(LZ4_compressBound(offset_)); + if (compBuffer == NULL) { + throw FLANNException("Error allocating compression buffer"); + } + size_t headSz = sizeof(IndexHeaderStruct); memcpy(compBuffer, buffer_, headSz); @@ -436,6 +440,9 @@ public: void save(const T& val) { buffer_ = (char *)realloc(buffer_, offset_+sizeof(val)); + if (buffer_ == NULL) { + throw FLANNException("Error reallocating compression buffer (save_binary())"); + } memcpy(buffer_+offset_, &val, sizeof(val)); offset_ += sizeof(val); } @@ -451,6 +458,9 @@ public: void save_binary(T* ptr, size_t size) { buffer_ = (char *)realloc(buffer_, offset_+size); + if (buffer_ == NULL) { + throw FLANNException("Error reallocating compression buffer (save_binary())"); + } memcpy(buffer_+offset_, ptr, size); offset_ += size; } -- GitLab