Index: webkit/plugins/ppapi/content_decryptor_delegate.cc |
diff --git a/webkit/plugins/ppapi/content_decryptor_delegate.cc b/webkit/plugins/ppapi/content_decryptor_delegate.cc |
index e62fca497573070fe7eb80ed3d107ce39438351c..d2adfa3c428876c36e84ef4ec4f1d4f6c07265a7 100644 |
--- a/webkit/plugins/ppapi/content_decryptor_delegate.cc |
+++ b/webkit/plugins/ppapi/content_decryptor_delegate.cc |
@@ -640,24 +640,39 @@ void ContentDecryptorDelegate::KeyMessage(PP_Var key_system_var, |
return; |
} |
- EnterResourceNoLock<PPB_Buffer_API> enter(message_resource, true); |
- if (!enter.succeeded()) { |
- decryptor_client_->KeyError(key_system_string->value(), |
- session_id_string->value(), |
- media::Decryptor::kUnknownError, |
- 0); |
- return; |
- } |
+ scoped_array<uint8> message_array; |
+ int message_size = 0; |
+ |
+ if (message_resource) { |
+ EnterResourceNoLock<PPB_Buffer_API> enter(message_resource, true); |
+ if (!enter.succeeded()) { |
+ decryptor_client_->KeyError(key_system_string->value(), |
+ session_id_string->value(), |
+ media::Decryptor::kUnknownError, |
+ 0); |
+ return; |
+ } |
- BufferAutoMapper mapper(enter.object()); |
- scoped_array<uint8> message_array(new uint8[mapper.size()]); |
- if (mapper.data() && mapper.size()) |
+ BufferAutoMapper mapper(enter.object()); |
+ if (!mapper.data() || !mapper.size()) { |
+ decryptor_client_->KeyError(key_system_string->value(), |
+ session_id_string->value(), |
+ media::Decryptor::kUnknownError, |
+ 0); |
+ return; |
+ } |
+ |
+ message_size = mapper.size(); |
+ message_array.reset(new uint8[message_size]); |
memcpy(message_array.get(), mapper.data(), mapper.size()); |
+ } |
+ |
+ LOG(ERROR) << "ContentDecryptorDelegate::KeyMessage"; |
ddorwin
2012/12/04 01:44:10
Did you mean to keep this here? Should at least no
xhwang
2012/12/04 01:58:51
oops, removed.
|
decryptor_client_->KeyMessage(key_system_string->value(), |
session_id_string->value(), |
message_array.Pass(), |
- mapper.size(), |
+ message_size, |
default_url_string->value()); |
} |