summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Doliner <markdoliner@pidgin.im>2009-10-16 09:23:59 +0000
committerMark Doliner <markdoliner@pidgin.im>2009-10-16 09:23:59 +0000
commiteed0a7271f3a128e743fcbd2aa3e20826411866c (patch)
tree6d9b9fb008f01341a1257c467d90a061949485c2
parent2e39acffcf6ec3fa7fe75b1a453133b0ccc886f4 (diff)
downloadpidgin-eed0a7271f3a128e743fcbd2aa3e20826411866c.tar.gz
*** Plucked rev b287044cda0ece6674ef4d1ff9994861569736f9 (darkrain42@pidgin.im):
Add the Entrust.net Secure Server CA (taken from Debian's set). Closes #10247. *** Plucked rev c914f0e55687264793af807f9c86bb83105635e4 (datallah@pidgin.im): Prevent a NULL sprintf(%s) when no resource is assigned to an account during inband registration. Fixes #10420.
-rw-r--r--libpurple/protocols/jabber/jabber.c76
-rw-r--r--pidgin/win32/nsis/pidgin-installer.nsi1
-rw-r--r--share/ca-certs/Entrust.net_Secure_Server_CA.pem28
-rw-r--r--share/ca-certs/Makefile.am1
4 files changed, 68 insertions, 38 deletions
diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c
index 9c746ac908..1178f25b2b 100644
--- a/libpurple/protocols/jabber/jabber.c
+++ b/libpurple/protocols/jabber/jabber.c
@@ -1077,53 +1077,53 @@ jabber_register_cb(JabberRegisterCBData *cbdata, PurpleRequestFields *fields)
return;
}
} else {
- const char *value = purple_request_field_string_get_value(field);
-
- if(!strcmp(id, "username")) {
- y = xmlnode_new_child(query, "username");
- } else if(!strcmp(id, "password")) {
- y = xmlnode_new_child(query, "password");
- } else if(!strcmp(id, "name")) {
- y = xmlnode_new_child(query, "name");
- } else if(!strcmp(id, "email")) {
- y = xmlnode_new_child(query, "email");
- } else if(!strcmp(id, "nick")) {
- y = xmlnode_new_child(query, "nick");
- } else if(!strcmp(id, "first")) {
- y = xmlnode_new_child(query, "first");
- } else if(!strcmp(id, "last")) {
- y = xmlnode_new_child(query, "last");
- } else if(!strcmp(id, "address")) {
- y = xmlnode_new_child(query, "address");
- } else if(!strcmp(id, "city")) {
- y = xmlnode_new_child(query, "city");
- } else if(!strcmp(id, "state")) {
- y = xmlnode_new_child(query, "state");
- } else if(!strcmp(id, "zip")) {
- y = xmlnode_new_child(query, "zip");
- } else if(!strcmp(id, "phone")) {
- y = xmlnode_new_child(query, "phone");
- } else if(!strcmp(id, "url")) {
- y = xmlnode_new_child(query, "url");
- } else if(!strcmp(id, "date")) {
- y = xmlnode_new_child(query, "date");
- } else {
- continue;
- }
- xmlnode_insert_data(y, value, -1);
+ const char *value = purple_request_field_string_get_value(field);
+
+ if(!strcmp(id, "username")) {
+ y = xmlnode_new_child(query, "username");
+ } else if(!strcmp(id, "password")) {
+ y = xmlnode_new_child(query, "password");
+ } else if(!strcmp(id, "name")) {
+ y = xmlnode_new_child(query, "name");
+ } else if(!strcmp(id, "email")) {
+ y = xmlnode_new_child(query, "email");
+ } else if(!strcmp(id, "nick")) {
+ y = xmlnode_new_child(query, "nick");
+ } else if(!strcmp(id, "first")) {
+ y = xmlnode_new_child(query, "first");
+ } else if(!strcmp(id, "last")) {
+ y = xmlnode_new_child(query, "last");
+ } else if(!strcmp(id, "address")) {
+ y = xmlnode_new_child(query, "address");
+ } else if(!strcmp(id, "city")) {
+ y = xmlnode_new_child(query, "city");
+ } else if(!strcmp(id, "state")) {
+ y = xmlnode_new_child(query, "state");
+ } else if(!strcmp(id, "zip")) {
+ y = xmlnode_new_child(query, "zip");
+ } else if(!strcmp(id, "phone")) {
+ y = xmlnode_new_child(query, "phone");
+ } else if(!strcmp(id, "url")) {
+ y = xmlnode_new_child(query, "url");
+ } else if(!strcmp(id, "date")) {
+ y = xmlnode_new_child(query, "date");
+ } else {
+ continue;
+ }
+ xmlnode_insert_data(y, value, -1);
if(cbdata->js->registration && !strcmp(id, "username")) {
g_free(cbdata->js->user->node);
cbdata->js->user->node = g_strdup(value);
- }
+ }
if(cbdata->js->registration && !strcmp(id, "password"))
purple_account_set_password(cbdata->js->gc->account, value);
+ }
}
}
- }
if(cbdata->js->registration) {
- username = g_strdup_printf("%s@%s/%s", cbdata->js->user->node, cbdata->js->user->domain,
- cbdata->js->user->resource);
+ username = g_strdup_printf("%s@%s%s%s", cbdata->js->user->node, cbdata->js->user->domain,
+ cbdata->js->user->resource ? "/" : "", cbdata->js->user->resource);
purple_account_set_username(cbdata->js->gc->account, username);
g_free(username);
}
diff --git a/pidgin/win32/nsis/pidgin-installer.nsi b/pidgin/win32/nsis/pidgin-installer.nsi
index 6ec169eadf..48b5316d6b 100644
--- a/pidgin/win32/nsis/pidgin-installer.nsi
+++ b/pidgin/win32/nsis/pidgin-installer.nsi
@@ -717,6 +717,7 @@ Section Uninstall
Delete "$INSTDIR\ca-certs\AOL_Member_CA.pem"
Delete "$INSTDIR\ca-certs\CAcert_Class3.pem"
Delete "$INSTDIR\ca-certs\CAcert_Root.pem"
+ Delete "$INSTDIR\ca-certs\Entrust.net_Secure_Server_CA.pem"
Delete "$INSTDIR\ca-certs\Equifax_Secure_CA.pem"
Delete "$INSTDIR\ca-certs\Equifax_Secure_Global_eBusiness_CA-1.pem"
Delete "$INSTDIR\ca-certs\GTE_CyberTrust_Global_Root.pem"
diff --git a/share/ca-certs/Entrust.net_Secure_Server_CA.pem b/share/ca-certs/Entrust.net_Secure_Server_CA.pem
new file mode 100644
index 0000000000..4b8939ccba
--- /dev/null
+++ b/share/ca-certs/Entrust.net_Secure_Server_CA.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
+VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
+ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
+KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
+ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
+MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
+ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
+b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
+bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
+U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
+A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
+I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
+wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
+AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
+oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
+BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
+dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
+MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
+b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
+dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
+MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
+E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
+MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
+hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
+95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
+2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
+-----END CERTIFICATE-----
diff --git a/share/ca-certs/Makefile.am b/share/ca-certs/Makefile.am
index b9a0d0b17f..4ec9d6ab76 100644
--- a/share/ca-certs/Makefile.am
+++ b/share/ca-certs/Makefile.am
@@ -2,6 +2,7 @@ CERTIFICATES = \
America_Online_Root_Certification_Authority_1.pem \
CAcert_Root.pem \
CAcert_Class3.pem \
+ Entrust.net_Secure_Server_CA.pem \
Equifax_Secure_CA.pem \
Equifax_Secure_Global_eBusiness_CA-1.pem \
GTE_CyberTrust_Global_Root.pem \