服务端代码开发过程中,需要对http协议进行解析。但是经排查发现,某个全局变量template_value有时会被篡改,但是有时并不会。
由于问题偶发,难以定位。判断是数组越界导致的全局变量被篡改。经查看map表,猜测为template-value前面一个数组tem_buf[10]越界导致。
tem_buf在代码中的用处如上图,定位到name_end-name-2的数值超过temp_buf数组的大小10。
再后来经wireshark抓包,确认为fw没加引号。导致http检测到下图方框里的内容,作为了解析报文的关键字。加上引号后问题解决。