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;
>