From: Alexei Sheplyakov Date: Sat, 8 Aug 2009 10:03:38 +0000 (+0300) Subject: ncmul::eval(): don't write beyond the end of the vector. X-Git-Tag: release_1-5-4~6 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=7a2ac48810afb303e1580afb6266876dda3c5da0 ncmul::eval(): don't write beyond the end of the vector. --- diff --git a/ginac/ncmul.cpp b/ginac/ncmul.cpp index 0c22a81f..fff307d0 100644 --- a/ginac/ncmul.cpp +++ b/ginac/ncmul.cpp @@ -339,15 +339,15 @@ ex ncmul::eval(int level) const if (assocseq.empty()) return _ex1; // determine return types - unsignedvector rettypes; - rettypes.reserve(assocseq.size()); + unsignedvector rettypes(assocseq.size()); size_t i = 0; size_t count_commutative=0; size_t count_noncommutative=0; size_t count_noncommutative_composite=0; cit = assocseq.begin(); citend = assocseq.end(); while (cit != citend) { - switch (rettypes[i] = cit->return_type()) { + rettypes[i] = cit->return_type(); + switch (rettypes[i]) { case return_types::commutative: count_commutative++; break;