/pidgin/main: 56c7dbe97266: facebook-json:`Special-case "$" to r...

dequis <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 56c7dbe972663344a58e6994b8ccaa0a162b73f9
Author:	 dequis <[email protected]>
Date:	 2015-12-21 16:31 -0500
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/56c7dbe97266

Description:

facebook-json:`Special-case "$" to return root for json-glib < 0.99.2

Older glib versions didn't consider "$" to be a valid expression, and
threw this error:

    Root node followed by invalid character '

(That's supposed to be '%c' with a \0)

Since this is possibly the simplest expression to parse, a g_strcmp0()
can do the job.

Thanks to advcomp2019 for reporting this bug and finding a test case
where this issue is reproducible every time (receiving events of people
joining or leaving in a groupchat)

Also thanks to EionRobb who realized what the bug was three hours ago
(and I didn't listen because I thought the previous bug was the same)

diffstat:

 libpurple/protocols/facebook/json.c |  5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diffs (15 lines):

diff --git a/libpurple/protocols/facebook/json.c b/libpurple/protocols/facebook/json.c
--- a/libpurple/protocols/facebook/json.c
+++ b/libpurple/protocols/facebook/json.c
@@ -290,6 +290,11 @@ fb_json_node_get(JsonNode *root, const g
 	JsonNode *node;
 	JsonNode *ret;
 
+	/* Special case for json-glib < 0.99.2 */
+	if (purple_strequal(expr, "$")) {
+		return json_node_copy(root);
+	}
+
 	node = json_path_query(expr, root, &err);
 
 	if (err != NULL) {

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.