You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2015/12/18 17:56:46 UTC

[jira] [Updated] (TS-4089) CID 1343608, 1343607: Parent selection Coverity issues

     [ https://issues.apache.org/jira/browse/TS-4089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leif Hedstrom updated TS-4089:
------------------------------
    Fix Version/s: 6.1.0

> CID 1343608, 1343607: Parent selection Coverity issues
> ------------------------------------------------------
>
>                 Key: TS-4089
>                 URL: https://issues.apache.org/jira/browse/TS-4089
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Parent Proxy
>            Reporter: Leif Hedstrom
>            Assignee: Phil Sorber
>             Fix For: 6.1.0
>
>
> This is from the refactoring I'm pretty sure.
> {code}
> ** CID 1343608:  Resource leaks  (CTOR_DTOR_LEAK)
> /proxy/ParentSelection.cc: 95 in ParentConfigParams::ParentConfigParams(ControlMatcher<ParentRecord, ParentResult> *)()
> ________________________________________________________________________________________________________
> *** CID 1343608:  Resource leaks  (CTOR_DTOR_LEAK)
> /proxy/ParentSelection.cc: 95 in ParentConfigParams::ParentConfigParams(ControlMatcher<ParentRecord, ParentResult> *)()
> 89     
> 90     ParentConfigParams::ParentConfigParams(P_table *_parent_table)
> 91     {
> 92       char *default_val = NULL;
> 93       parent_table = _parent_table;
> 94     
>    CID 1343608:  Resource leaks  (CTOR_DTOR_LEAK)
>    The constructor allocates field "policy" of "ParentConfigParams" but the destructor and whatever functions it calls do not free it.
> 95       policy = new ParentSelectionPolicy();
> 96     
> 97       // Handle default parent
> 98       PARENT_ReadConfigStringAlloc(default_val, default_var);
> 99       DefaultParent = createDefaultParent(default_val);
> 100       ats_free(default_val);
> ** CID 1343607:  Null pointer dereferences  (FORWARD_NULL)
> /proxy/ParentConsistentHash.cc: 158 in ParentConsistentHash::selectParent(const ParentSelectionPolicy *, bool, ParentResult *, RequestData *)()
> ________________________________________________________________________________________________________
> *** CID 1343607:  Null pointer dereferences  (FORWARD_NULL)
> /proxy/ParentConsistentHash.cc: 158 in ParentConsistentHash::selectParent(const ParentSelectionPolicy *, bool, ParentResult *, RequestData *)()
> 152             Debug("parent_select", "Parent.failedAt = %u, retry = %u, xact_start = %u", (unsigned int)pRec->failedAt,
> 153                   (unsigned int)policy->ParentRetryTime, (unsigned int)request_info->xact_start);
> 154             if ((pRec->failedAt + policy->ParentRetryTime) < request_info->xact_start) {
> 155               parentRetry = true;
> 156               // make sure that the proper state is recorded in the result structure
> 157               // so that markParentUp() finds the proper record.
>    CID 1343607:  Null pointer dereferences  (FORWARD_NULL)
>    Dereferencing null pointer "prtmp".
> 158               result->last_parent = prtmp->idx;
> 159               result->last_lookup = last_lookup;
> 160               result->retry = parentRetry;
> 161               result->r = PARENT_SPECIFIED;
> 162               markParentUp(result);
> 163               Debug("parent_select", "Down parent %s is now retryable, marked it available.", pRec->hostname);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)