You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2010/02/17 03:40:27 UTC
[jira] Closed: (TS-185) url_host_set() is free-ing and allocating
memory at every call which is triggering a crash in the heap code
[ https://issues.apache.org/jira/browse/TS-185?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leif Hedstrom closed TS-185.
----------------------------
Resolution: Fixed
> url_host_set() is free-ing and allocating memory at every call which is triggering a crash in the heap code
> -----------------------------------------------------------------------------------------------------------
>
> Key: TS-185
> URL: https://issues.apache.org/jira/browse/TS-185
> Project: Traffic Server
> Issue Type: Bug
> Components: Core
> Reporter: Manjesh Nilange
> Assignee: Leif Hedstrom
> Priority: Minor
> Fix For: 2.0.0a
>
> Attachments: url_host_set.patch
>
>
> url_host_set() is calling this function every time:
> const char *
> mime_str_u16_set (HdrHeap *heap,
> const char *s_str,
> inku16 s_len,
> const char **d_str,
> inku16 *d_len,
> bool must_copy)
> {
> // INKqa08287 - keep track of free string space.
> // INVARIENT: passed in result pointers must be to
> // either NULL or be valid ptr for a string already
> // the string heaps
> heap->free_string(*d_str, *d_len);
> if (must_copy && s_str) {
> s_str = heap->duplicate_str(s_str, s_len);
> }
> *d_str = s_str;
> *d_len = s_len;
> return(s_str);
> }
> So it always free()s and allocates a new chunk of memory. The regex mapping code calls url_host_set() on the same URL object every time it finds a mapping. At a high concurrency level, this was triggering a crash in the heap code.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.