1
0
Fork 0

fixed uninitialised variable access

This commit is contained in:
Jan Steemann 2014-02-24 17:48:56 +01:00
parent bb3704e04b
commit edb0e61e13
4 changed files with 13 additions and 6 deletions

View File

@ -3,6 +3,8 @@ v1.4.11 (XXXX-XX-XX)
* fixed small memleak in AQL optimiser * fixed small memleak in AQL optimiser
* fixed access to potentially uninitialised variable when collection had a cap constraint
v1.4.10 (2014-02-21) v1.4.10 (2014-02-21)
-------------------- --------------------

View File

@ -1262,8 +1262,9 @@ static void GenerateHashAccess (TRI_aql_codegen_js_t* const generator,
ScopeOutput(generator, ")"); ScopeOutput(generator, ")");
return; return;
} }
if (fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) { if (fieldAccess->_type == TRI_AQL_ACCESS_REFERENCE &&
fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
ScopeOutput(generator, "aql.GET_DOCUMENTS_HASH_LIST('"); ScopeOutput(generator, "aql.GET_DOCUMENTS_HASH_LIST('");
ScopeOutput(generator, collectionName); ScopeOutput(generator, collectionName);
ScopeOutput(generator, "', "); ScopeOutput(generator, "', ");
@ -1407,7 +1408,8 @@ static void GenerateSkiplistAccess (TRI_aql_codegen_js_t* const generator,
return; return;
} }
if (fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) { if (fieldAccess->_type == TRI_AQL_ACCESS_REFERENCE &&
fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
ScopeOutput(generator, "aql.GET_DOCUMENTS_SKIPLIST_LIST('"); ScopeOutput(generator, "aql.GET_DOCUMENTS_SKIPLIST_LIST('");
ScopeOutput(generator, collectionName); ScopeOutput(generator, collectionName);
ScopeOutput(generator, "', "); ScopeOutput(generator, "', ");
@ -1527,8 +1529,9 @@ static void GenerateBitarrayAccess (TRI_aql_codegen_js_t* const generator,
ScopeOutput(generator, ")"); ScopeOutput(generator, ")");
return; return;
} }
if (fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) { if (fieldAccess->_type == TRI_AQL_ACCESS_REFERENCE &&
fieldAccess->_value._reference._operator == TRI_AQL_NODE_OPERATOR_BINARY_IN) {
ScopeOutput(generator, "aql.GET_DOCUMENTS_BITARRAY_LIST('"); ScopeOutput(generator, "aql.GET_DOCUMENTS_BITARRAY_LIST('");
ScopeOutput(generator, collectionName); ScopeOutput(generator, collectionName);
ScopeOutput(generator, "', "); ScopeOutput(generator, "', ");

View File

@ -253,7 +253,7 @@ static TRI_aql_index_t* PickIndex (TRI_aql_context_t* const context,
/// @brief check eligibility of an index for further inspection /// @brief check eligibility of an index for further inspection
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
static bool CanUseIndex (const TRI_index_t* const idx) { static bool CanUseIndex (TRI_index_t const* idx) {
if (idx->_fields._length == 0) { if (idx->_fields._length == 0) {
// index should contain at least one field // index should contain at least one field
return false; return false;

View File

@ -296,6 +296,7 @@ TRI_index_t* TRI_CreateCapConstraint (struct TRI_primary_collection_s* primary,
idx->typeName = TypeNameCapConstraint; idx->typeName = TypeNameCapConstraint;
TRI_InitIndex(idx, TRI_IDX_TYPE_CAP_CONSTRAINT, primary, false, true); TRI_InitIndex(idx, TRI_IDX_TYPE_CAP_CONSTRAINT, primary, false, true);
TRI_InitVectorString(&idx->_fields, TRI_CORE_MEM_ZONE);
idx->json = JsonCapConstraint; idx->json = JsonCapConstraint;
idx->removeIndex = RemoveIndexCapConstraint; idx->removeIndex = RemoveIndexCapConstraint;
@ -316,6 +317,7 @@ TRI_index_t* TRI_CreateCapConstraint (struct TRI_primary_collection_s* primary,
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
void TRI_DestroyCapConstraint (TRI_index_t* idx) { void TRI_DestroyCapConstraint (TRI_index_t* idx) {
TRI_DestroyVectorString(&idx->_fields);
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////