projects
/
gssweb.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f1de4ea
)
Handle errors of garbled JSON sent to the native host
author
Mark Donnelly
<mark@painless-security.com>
Wed, 3 Dec 2014 17:28:52 +0000
(12:28 -0500)
committer
Mark Donnelly
<mark@painless-security.com>
Wed, 3 Dec 2014 17:28:52 +0000
(12:28 -0500)
chrome/app/navigator.gss.js
patch
|
blob
|
history
diff --git
a/chrome/app/navigator.gss.js
b/chrome/app/navigator.gss.js
index
4a2e09c
..
a2ed28c
100644
(file)
--- a/
chrome/app/navigator.gss.js
+++ b/
chrome/app/navigator.gss.js
@@
-67,7
+67,7
@@
var GSSEap = (function ()
/* This message is destined for us only if all the following apply:
* - The data.method_name is one of the methods implemented by this
* object
/* This message is destined for us only if all the following apply:
* - The data.method_name is one of the methods implemented by this
* object
- * - data.return_values exists
+ * - data.return_values exists
or data.error_mssage exists
* - data.cookies exists
* - One of my callbacks matches the nonce in
* data.cookies.navigator_gss_tag
* - data.cookies exists
* - One of my callbacks matches the nonce in
* data.cookies.navigator_gss_tag
@@
-78,7
+78,8
@@
var GSSEap = (function ()
method = event.data.method;
if (
( -1 == this.implemented_methods.indexOf(method) ) ||
method = event.data.method;
if (
( -1 == this.implemented_methods.indexOf(method) ) ||
- ("undefined" == typeof (event.data.return_values)) ||
+ ( ("undefined" == typeof (event.data.return_values) ) &&
+ ("undefined" == typeof (event.data.error_message) ) ) ||
("undefined" == typeof (event.data.cookies)))
{
return;
("undefined" == typeof (event.data.cookies)))
{
return;
@@
-96,7
+97,11
@@
var GSSEap = (function ()
app_tag = event.data.cookies.app_tag;
error = this.errors[nonce] || this.default_error;
app_tag = event.data.cookies.app_tag;
error = this.errors[nonce] || this.default_error;
- if (this.gss_error(event.data.return_values.major_status))
+ if ("undefined" != typeof(event.data.error_message) )
+ {
+ error(-1, -1, "Error parsing message: " + event.data.error_message, app_tag);
+ }
+ else if (this.gss_error(event.data.return_values.major_status))
{
var errMsg = "Error during " + method + ": " +
"Major status message: " +
{
var errMsg = "Error during " + method + ": " +
"Major status message: " +