Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dequis/purple-facebook.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordequis <dx@dxzone.com.ar>2017-08-27 01:37:23 +0300
committerdequis <dx@dxzone.com.ar>2017-08-27 01:37:23 +0300
commite6f13c5766b71f820899b694a68102eca1a232fd (patch)
tree6b2527b9e3595f77c14cebb5b5b7bc3983b72504
parentc40d9fade51f4aa08adacf0ebe81d79d2650ffb3 (diff)
Handle unknown thrift fields in /t_p payloadmystery-meat-2
-rw-r--r--patches/15-presence-unknown-fields.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/patches/15-presence-unknown-fields.patch b/patches/15-presence-unknown-fields.patch
new file mode 100644
index 0000000..c8ef679
--- /dev/null
+++ b/patches/15-presence-unknown-fields.patch
@@ -0,0 +1,22 @@
+--- a/libpurple/protocols/facebook/api.c 2017-08-26 17:54:32.513800944 -0300
++++ b/libpurple/protocols/facebook/api.c 2017-08-26 16:11:12.821137020 -0300
+@@ -1675,8 +1675,18 @@
+ FB_API_TCHK(fb_thrift_read_i64(thft, NULL));
+ break;
+
++ case 6:
++ /* Unknown new field */
++ FB_API_TCHK(type == FB_THRIFT_TYPE_I64);
++ FB_API_TCHK(fb_thrift_read_i64(thft, NULL));
++ break;
++
+ default:
+- FB_API_TCHK(FALSE);
++ /* Try to read unknown fields as varint */
++ FB_API_TCHK(type == FB_THRIFT_TYPE_I16 ||
++ type == FB_THRIFT_TYPE_I32 ||
++ type == FB_THRIFT_TYPE_I64);
++ FB_API_TCHK(fb_thrift_read_i64(thft, NULL));
+ break;
+ }
+ }