From 59bbc3170105a42cf1c49bee64321157eb3a01d4 Mon Sep 17 00:00:00 2001 From: Puck Meerburg Date: Mon, 25 Nov 2019 12:37:14 +0000 Subject: Ensure enough space in attrset bindings when using both __overrides and dynamic attributes (cherry picked from commit cd55f91ad2075d5ebb506950dfbc4161cab22db5) --- src/libexpr/eval.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/libexpr/eval.cc') diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index d84d0dd1612f..dc2520229381 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -877,7 +877,7 @@ void ExprAttrs::eval(EvalState & state, Env & env, Value & v) if (hasOverrides) { Value * vOverrides = (*v.attrs)[overrides->second.displ].value; state.forceAttrs(*vOverrides); - Bindings * newBnds = state.allocBindings(v.attrs->size() + vOverrides->attrs->size()); + Bindings * newBnds = state.allocBindings(v.attrs->capacity() + vOverrides->attrs->size()); for (auto & i : *v.attrs) newBnds->push_back(i); for (auto & i : *vOverrides->attrs) { -- cgit 1.4.1