Bug 43643

Summary: Detect invalid CoreIPC messages and call didReceiveInvalidMessage
Product: WebKit Reporter: Anders Carlsson <andersca>
Component: New BugsAssignee: Anders Carlsson <andersca>
Status: RESOLVED FIXED    
Severity: Normal Keywords: InRadar
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: OS X 10.5   
Attachments:
Description Flags
Patch aroben: review+

Description Anders Carlsson 2010-08-06 14:27:53 PDT
Detect invalid CoreIPC messages and call didReceiveInvalidMessage
Comment 1 Anders Carlsson 2010-08-06 14:37:09 PDT
Created attachment 63761 [details]
Patch
Comment 2 Anders Carlsson 2010-08-06 14:37:25 PDT
<rdar://problem/7891069>
Comment 3 Adam Roben (:aroben) 2010-08-06 14:44:25 PDT
Comment on attachment 63761 [details]
Patch

> @@ -253,14 +257,15 @@ void Connection::dispatchMessages()
>              OwnPtr<ArgumentEncoder> replyEncoder(new ArgumentEncoder(syncRequestID));
>              
>              // Hand off both the decoder and encoder to the client..
> -            m_client->didReceiveSyncMessage(this, message.messageID(), arguments, replyEncoder.get());
> +            m_client->didReceiveSyncMessage(this, message.messageID(), arguments.get(), replyEncoder.get());
>              
>              // Send the reply.
>              sendMessage(MessageID(CoreIPCMessage::SyncMessageReply), replyEncoder.release());
>          } else
> -            m_client->didReceiveMessage(this, message.messageID(), arguments);
> +            m_client->didReceiveMessage(this, message.messageID(), arguments.get());
>  
> -        message.destroy();
> +        if (arguments->isInvalid())
> +            m_client->didReceiveInvalidMessage(this, message.messageID());
>      }
>  }

Should we check if the arguments are invalid before sending the synchronous reply?

r=me
Comment 4 Anders Carlsson 2010-08-06 14:53:20 PDT
Committed r64871: <http://trac.webkit.org/changeset/64871>