mirror of https://gitee.com/bigwinds/arangodb
fixed undefined behavior
This commit is contained in:
parent
c6894549c7
commit
f900090584
|
@ -103,6 +103,9 @@ v2.8.0 (XXXX-XX-XX)
|
||||||
v2.7.2 (XXXX-XX-XX)
|
v2.7.2 (XXXX-XX-XX)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* fixed undefined behavior when accessing the top level of a document with the `[*]`
|
||||||
|
operator
|
||||||
|
|
||||||
* fixed potentially invalid pointer access in shaper when the currently accessed
|
* fixed potentially invalid pointer access in shaper when the currently accessed
|
||||||
document got re-located by the WAL collector at the very same time
|
document got re-located by the WAL collector at the very same time
|
||||||
|
|
||||||
|
|
|
@ -529,7 +529,7 @@ AqlValue Expression::executeSimpleExpression (AstNode const* node,
|
||||||
case NODE_TYPE_EXPANSION:
|
case NODE_TYPE_EXPANSION:
|
||||||
return executeSimpleExpressionExpansion(node, trx, argv, startPos, vars, regs);
|
return executeSimpleExpressionExpansion(node, trx, argv, startPos, vars, regs);
|
||||||
case NODE_TYPE_ITERATOR:
|
case NODE_TYPE_ITERATOR:
|
||||||
return executeSimpleExpressionIterator(node, trx, argv, startPos, vars, regs);
|
return executeSimpleExpressionIterator(node, collection, trx, argv, startPos, vars, regs);
|
||||||
case NODE_TYPE_OPERATOR_BINARY_PLUS:
|
case NODE_TYPE_OPERATOR_BINARY_PLUS:
|
||||||
case NODE_TYPE_OPERATOR_BINARY_MINUS:
|
case NODE_TYPE_OPERATOR_BINARY_MINUS:
|
||||||
case NODE_TYPE_OPERATOR_BINARY_TIMES:
|
case NODE_TYPE_OPERATOR_BINARY_TIMES:
|
||||||
|
@ -1290,6 +1290,7 @@ AqlValue Expression::executeSimpleExpressionExpansion (AstNode const* node,
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
AqlValue Expression::executeSimpleExpressionIterator (AstNode const* node,
|
AqlValue Expression::executeSimpleExpressionIterator (AstNode const* node,
|
||||||
|
TRI_document_collection_t const** collection,
|
||||||
triagens::arango::AqlTransaction* trx,
|
triagens::arango::AqlTransaction* trx,
|
||||||
AqlItemBlock const* argv,
|
AqlItemBlock const* argv,
|
||||||
size_t startPos,
|
size_t startPos,
|
||||||
|
@ -1298,9 +1299,8 @@ AqlValue Expression::executeSimpleExpressionIterator (AstNode const* node,
|
||||||
TRI_ASSERT(node != nullptr);
|
TRI_ASSERT(node != nullptr);
|
||||||
TRI_ASSERT(node->numMembers() == 2);
|
TRI_ASSERT(node->numMembers() == 2);
|
||||||
|
|
||||||
// intentionally do not stringify node 0
|
*collection = nullptr;
|
||||||
TRI_document_collection_t const* myCollection = nullptr;
|
return executeSimpleExpression(node->getMember(1), collection, trx, argv, startPos, vars, regs, true);
|
||||||
return executeSimpleExpression(node->getMember(1), &myCollection, trx, argv, startPos, vars, regs, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -485,6 +485,7 @@ namespace triagens {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
AqlValue executeSimpleExpressionIterator (AstNode const*,
|
AqlValue executeSimpleExpressionIterator (AstNode const*,
|
||||||
|
TRI_document_collection_t const**,
|
||||||
triagens::arango::AqlTransaction*,
|
triagens::arango::AqlTransaction*,
|
||||||
AqlItemBlock const*,
|
AqlItemBlock const*,
|
||||||
size_t,
|
size_t,
|
||||||
|
|
Loading…
Reference in New Issue