From f2ea13c0231af884a4641325b4c55da0301d6442 Mon Sep 17 00:00:00 2001 From: Andreas Schenk <andreas_schenk@hms.harvard.edu> Date: Mon, 12 Nov 2012 08:39:11 -0500 Subject: [PATCH] fix for boundary check in value holder --- modules/img/base/src/image_state/value_holder.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/img/base/src/image_state/value_holder.cc b/modules/img/base/src/image_state/value_holder.cc index 71c79d1d7..aafae4b54 100644 --- a/modules/img/base/src/image_state/value_holder.cc +++ b/modules/img/base/src/image_state/value_holder.cc @@ -62,8 +62,13 @@ size_t calc_volume(const Size& s) { ++numbits; } + tmp=sizeof(V); + while (tmp >>= 1) + { + ++numbits; + } // check if number of pixels (2**(numbits+1)) larger than what size_t can handle - if(numbits>=sizeof(size_t)*sizeof(V)*8){ + if(numbits>=sizeof(size_t)*8){ throw std::bad_alloc(); } return static_cast<size_t>(s[0])*static_cast<size_t>(s[1])*static_cast<size_t>(s[2]); -- GitLab