You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by John Plevyak <jp...@acm.org> on 2010/05/27 16:46:21 UTC
Re: svn commit: r948673 - /trafficserver/traffic/trunk/librecords/RecMessage.cc
Actually
(5 + 7) & ~7 = 8
So this is 8 byte aligned.
john
On 5/26/2010 10:19 PM, mturk@apache.org wrote:
> Author: mturk
> Date: Thu May 27 05:19:42 2010
> New Revision: 948673
>
> URL: http://svn.apache.org/viewvc?rev=948673&view=rev
> Log:
> TS-376: Fix another wrong alignment calculation.
>
> This one is pretty dangerous. However it seems the RecMessageMarshal_Realloc is unused
>
> Modified:
> trafficserver/traffic/trunk/librecords/RecMessage.cc
>
> Modified: trafficserver/traffic/trunk/librecords/RecMessage.cc
> URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/librecords/RecMessage.cc?rev=948673&r1=948672&r2=948673&view=diff
> ==============================================================================
> --- trafficserver/traffic/trunk/librecords/RecMessage.cc (original)
> +++ trafficserver/traffic/trunk/librecords/RecMessage.cc Thu May 27 05:19:42 2010
> @@ -338,8 +338,12 @@ RecMessageMarshal_Realloc(RecMessage * m
> rec_cfg_chk_len = strlen(record->config_meta.check_expr) + 1;
> msg_ele_size += rec_cfg_chk_len;
> }
> - msg_ele_size = (msg_ele_size + 7) & ~7; // 8 byte alignmenet
> + // XXX: this is NOT 8 byte alignment
> + // msg_ele_size = 5;
> + // (msg_ele_size + 7) & ~7 == 5 !!!
> + // msg_ele_size = (msg_ele_size + 7) & ~7; // 8 byte alignmenet
>
> + msg_ele_size = INK_ALIGN_DEFAULT(msg_ele_size); // 8 byte alignmenet
> // get some space in our buffer
> while (msg->o_end - msg->o_write < msg_ele_size) {
> int realloc_size = (msg->o_end - msg->o_start) * 2;
>