[gthumb/gthumb-3-2] facebook: fixed the authorization process
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb/gthumb-3-2] facebook: fixed the authorization process
- Date: Sat, 4 Apr 2015 19:29:50 +0000 (UTC)
commit 3696999c007606b4a4de17b01e4ba07f232b1a57
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sat Apr 4 21:03:43 2015 +0200
facebook: fixed the authorization process
bug due to facebook adding a '?' after the redirect uri.
extensions/facebook/facebook-service.c | 29 ++++++++++++++++-------------
1 files changed, 16 insertions(+), 13 deletions(-)
---
diff --git a/extensions/facebook/facebook-service.c b/extensions/facebook/facebook-service.c
index 2fbc006..e2a8250 100644
--- a/extensions/facebook/facebook-service.c
+++ b/extensions/facebook/facebook-service.c
@@ -260,24 +260,27 @@ ask_authorization_dialog_redirected_cb (OAuthAskAuthorizationDialog *dialog,
uri = oauth_ask_authorization_dialog_get_uri (dialog);
if (g_str_has_prefix (uri, FACEBOOK_REDIRECT_URI)) {
const char *uri_data;
- GHashTable *data;
- const char *access_token;
- const char *state;
-
- uri_data = uri + strlen (FACEBOOK_REDIRECT_URI "#");
-
- data = soup_form_decode (uri_data);
- access_token = NULL;
- state = g_hash_table_lookup (data, "state");
- if (g_strcmp0 (state, self->priv->state) == 0) {
- access_token = g_hash_table_lookup (data, "access_token");
- _facebook_service_set_access_token (self, access_token);
+ GHashTable *data = NULL;
+ const char *access_token = NULL;
+
+ uri_data = strchr (uri, '#');
+ if (uri_data != NULL) {
+ const char *state;
+
+ uri_data = uri_data + 1;
+ data = soup_form_decode (uri_data);
+ state = g_hash_table_lookup (data, "state");
+ if (g_strcmp0 (state, self->priv->state) == 0) {
+ access_token = g_hash_table_lookup (data, "access_token");
+ _facebook_service_set_access_token (self, access_token);
+ }
}
gtk_dialog_response (GTK_DIALOG (dialog),
(access_token != NULL) ? GTK_RESPONSE_OK : GTK_RESPONSE_CANCEL);
- g_hash_table_destroy (data);
+ if (data != NULL)
+ g_hash_table_destroy (data);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]