[ https://issues.apache.org/jira/browse/TS-4555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leif Hedstrom updated TS-4555: ------------------------------ Fix Version/s: 7.0.0 > C++ API takes a transaction argument without allocating it > ---------------------------------------------------------- > > Key: TS-4555 > URL: https://issues.apache.org/jira/browse/TS-4555 > Project: Traffic Server > Issue Type: Bug > Components: CPP API > Reporter: James Peach > Assignee: Brian Geffon > Fix For: 7.0.0 > > > {code} > Transaction & > utils::internal::getTransaction(TSHttpTxn ats_txn_handle) > { > Transaction *transaction = static_cast<Transaction > *>(TSHttpTxnArgGet(ats_txn_handle, TRANSACTION_STORAGE_INDEX)); > if (!transaction) { > transaction = new Transaction(static_cast<void *>(ats_txn_handle)); > LOG_DEBUG("Created new transaction object at %p for ats pointer %p", > transaction, ats_txn_handle); > TSHttpTxnArgSet(ats_txn_handle, TRANSACTION_STORAGE_INDEX, transaction); > } > return *transaction; > } > {code} > {{TRANSACTION_STORAGE_INDEX}} is hardcoded constant that is not allocated by > {{TSHttpArgIndexReserve}}, so it is subject to collisions with other plugins. -- This message was sent by Atlassian JIRA (v6.3.4#6332)