Bug #1857
closedAccess NULL pointer in WebSession.c
0%
Description
Hi!
We recently upgraded WT from 3.2.1 to 3.3.0. When running multiple sessions we experienced a crash in WT application. This is due to the fact that a NULL pointer is accessed in file
websession.c in function WebSession::pushUpdates():
if (canWriteAsyncResponse_) {
if (asyncResponse_->isWebSocketRequest()
&& asyncResponse_->webSocketMessagePending())
return;
At this stage asyncResponse_ is NULL sometimes.
This file differs from 3.2.1 version at the start of the function:
if (!renderer*.isDirty() || state* == Dead) {
LOG_DEBUG("pushUpdates(): nothing to do");
return;
}
versus the new:
if (!renderer_.isDirty()) {
LOG_DEBUG("pushUpdates(): nothing to do");
return;
}
In 3.3.0 there is no checking of state even thou the state of the session is Dead.
Updated by Koen Deforche over 11 years ago
- Status changed from New to Feedback
- Assignee set to Koen Deforche
Hey,
Yes there was a bug related to this that slipped into 3.3.0.
This should be fixed in latest git. Checking on Dead is no longer correct since we now also support terminating a session from server push (using WApplication::quit()).
The correct check is :
if (!app_ || !renderer_.isDirty()) {
...
You should be getting this problem only when terminating a session ?
Regards,
koen
Updated by Bogdan Cosescu over 11 years ago
Hi Koen!
The problem appeared only when terminating 2 or more sessions.
I just saw the fix.
Thanks.
Updated by Koen Deforche over 11 years ago
- Status changed from Feedback to Resolved
- Target version changed from 3.3.0 to 3.3.1
Updated by Koen Deforche over 11 years ago
- Status changed from Resolved to Closed