Project

General

Profile

Bug #1857

Access NULL pointer in WebSession.c

Added by Bogdan Cosescu over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
High
Assignee:
Target version:
Start date:
04/19/2013
Due date:
% Done:

0%

Estimated time:

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.

#1

Updated by Koen Deforche over 8 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

#2

Updated by Bogdan Cosescu over 8 years ago

Hi Koen!

The problem appeared only when terminating 2 or more sessions.

I just saw the fix.

Thanks.

#3

Updated by Koen Deforche over 8 years ago

  • Status changed from Feedback to Resolved
  • Target version changed from 3.3.0 to 3.3.1
#4

Updated by Koen Deforche over 8 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF