[ 
https://issues.apache.org/jira/browse/TS-996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13132822#comment-13132822
 ] 

B Wyatt commented on TS-996:
----------------------------

I am auditioning a fast/dirty fix for this that cache's a MIMEField pointer 
instead of the string pointer if the host comes from the MIMEHdr.  For Hosts in 
the URL it uses the m_cached_url's copy instead of a top level copy which 
should be immune to heap changes. 

Ideally, I think that code is up for a bit of cleaning but this will hopefully 
suffice for now.

The patch is attached as m_host.patch
                
> HTTPHdr::m_host goes stale if HdrHeap::evacuate_from_str_heaps is called
> ------------------------------------------------------------------------
>
>                 Key: TS-996
>                 URL: https://issues.apache.org/jira/browse/TS-996
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: HTTP, MIME
>    Affects Versions: 3.1.0
>            Reporter: B Wyatt
>         Attachments: m_host.patch
>
>
> class HTTPHdr stores a copy of the string pointer from either the URLimpl or 
> the MIMEHdr for the host name in m_host.  In both cases, these strings can be 
> moved to a new heap underneath the HTTPHdr.  When this happens, the process 
> will, at best read stale memory and be fine and at worst read unmapped memory 
> and segfault. 
> Currently, HdrHeap::evacuate_from_str_heaps is called to coalesce multiple 
> heaps into a single heap.  When this happens it will directly access the low 
> level objects via ::move_strings calls.  These objects do not posses the 
> necessary information to inform parent objects about the change, nor does the 
> HdrHeap directly inform interested parties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to