I’m encountering this same issue in Squid-3.5.3 > Changed to: > > inline void setServerBump(Ssl::ServerBump *srvBump) { > if (!sslServerBump) > sslServerBump = srvBump; > else > assert(sslServerBump = srvBump); Just FYI, from a glance this would leak an Ssl::ServerBump every time it hit that assert, which at least in my case would be quite often. What I ended up doing, which could be completely wrong for the behaviour, but it seems to avoid the crashes, was add a function clearServerBump(), and use that in setServerBump to clean up the old sslServerBump (as in the header file it is only a forward declaration of the class): client_side.h void clearServerBump(); inline void setServerBump(Ssl::ServerBump *srvBump) { if (sslServerBump) { if (sslServerBump != srvBump) { clearServerBump(); } else { return; } } sslServerBump = srvBump; } client_side.cc void ConnStateData::clearServerBump() { delete sslServerBump; sslServerBump = 0; } This could entirely have unintended side effects as I am not very familiar with how sslbumping is implemented, and the intended lifetime of the objects as relates to the client requests, but if you’re still using the workaround you posted I thought you should be aware that you would be leaking memory and provide you with an equivalent “solution” which does not leak memory in the same way. |
_______________________________________________ squid-users mailing list squid-users@xxxxxxxxxxxxxxxxxxxxx http://lists.squid-cache.org/listinfo/squid-users