summaryrefslogtreecommitdiffstats
path: root/main/asterisk
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2012-01-20 11:07:53 +0200
committerTimo Teräs <timo.teras@iki.fi>2012-01-20 11:09:24 +0200
commit14fe40fd6c7831a489afdce377a7a1acdd69bd09 (patch)
tree9988573e5a566238e8856f975671b17924cc61e0 /main/asterisk
parent41329347c2a22370231bcc8fe581fbddf035e15c (diff)
downloadaports-14fe40fd6c7831a489afdce377a7a1acdd69bd09.tar.bz2
aports-14fe40fd6c7831a489afdce377a7a1acdd69bd09.tar.xz
main/asterisk: upgrade to 10.0.1, and update ASTERISK-19106 patch
* security fix AST-2012-001 (remote crash under certain special configs)
Diffstat (limited to 'main/asterisk')
-rw-r--r--main/asterisk/APKBUILD8
-rw-r--r--main/asterisk/ASTERISK-19106.patch30
2 files changed, 24 insertions, 14 deletions
diff --git a/main/asterisk/APKBUILD b/main/asterisk/APKBUILD
index ca69e05c3..8d9f859db 100644
--- a/main/asterisk/APKBUILD
+++ b/main/asterisk/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=asterisk
-pkgver=10.0.0
-pkgrel=5
+pkgver=10.0.1
+pkgrel=0
pkgdesc="Asterisk: A Module Open Source PBX System"
url="http://www.asterisk.org/"
arch="all"
@@ -166,7 +166,7 @@ sound_en() {
_move_dir var/lib/asterisk/sounds/en
}
-md5sums="6b52336b9dc01eeecb9de2eb2818e127 asterisk-10.0.0.tar.gz
+md5sums="b8eaff7832fe46fc764030ed46df617c asterisk-10.0.1.tar.gz
b00c9d98ce2ad445501248a197c6e436 100-uclibc-daemon.patch
6e1129e30c4fd2c25c86c81685a485a9 101-caps-uclibc.patch
79e9634b5054bceb3b8dc246654bb243 400-bug-227.patch
@@ -175,7 +175,7 @@ da5a3c500192dee4275aae5235d25f97 ASTERISK-18976.patch
1ddadef41aa7120e168738b6f3ed8917 ASTERISK-18977.patch
0af5e797f0a99d0f81f95e3710baf5b6 ASTERISK-18994.patch
bc6713f5434e07b79d3afdd155461d72 ASTERISK-18995.patch
-fee11ba2f6518462ea6dde4039f9d8fa ASTERISK-19106.patch
+8fbf49b2ada4e0634fd19b1f8f4f1218 ASTERISK-19106.patch
a59d61843a44d5a72da401218dcf6588 ASTERISK-19109.patch
74cd25a5638a94ef51e9f4ede2fd28f2 asterisk.initd
ed31d7ba37bcf8b0346dcf8593c395f0 asterisk.confd
diff --git a/main/asterisk/ASTERISK-19106.patch b/main/asterisk/ASTERISK-19106.patch
index d2f44c1d9..77dcbb8fa 100644
--- a/main/asterisk/ASTERISK-19106.patch
+++ b/main/asterisk/ASTERISK-19106.patch
@@ -1,8 +1,8 @@
-diff --git a/channels/chan_sip.c b/channels/chan_sip.c
-index e7b678b..f1e5578 100644
---- a/channels/chan_sip.c
-+++ b/channels/chan_sip.c
-@@ -13062,17 +13062,8 @@ static int sip_reg_timeout(const void *data)
+Index: channels/chan_sip.c
+===================================================================
+--- a/channels/chan_sip.c (revision 351503)
++++ b/channels/chan_sip.c (working copy)
+@@ -13246,17 +13246,8 @@
}
if (r->dnsmgr) {
@@ -20,21 +20,31 @@ index e7b678b..f1e5578 100644
}
/* If the initial tranmission failed, we may not have an existing dialog,
-@@ -13187,14 +13178,14 @@ static int transmit_register(struct sip_registry *r, int sipmethod, const char *
+@@ -13371,15 +13362,15 @@
}
/* Use port number specified if no SRV record was found */
- if (!ast_sockaddr_port(&r->us) && r->portno) {
-- ast_sockaddr_set_port(&r->us, r->portno);
-+ if (!ast_sockaddr_port(&r->us)) {
-+ ast_sockaddr_set_port(&r->us, r->portno ? r->portno : STANDARD_SIP_PORT);
++ if (!ast_sockaddr_isnull(&r->us) && !ast_sockaddr_port(&r->us) && r->portno) {
+ ast_sockaddr_set_port(&r->us, r->portno);
}
/* It is possible that DNS is unavailable at the time the peer is created. Here, if
* we've updated the address in the registry, we copy it to the peer so that
* create_addr() can copy it to the dialog via create_addr_from_peer */
- if ((peer = sip_find_peer(r->hostname, NULL, TRUE, FINDPEERS, FALSE, 0))) {
+- if (ast_sockaddr_isnull(&peer->addr) && !(ast_sockaddr_isnull(&r->us))) {
+ if ((peer = sip_find_peer(S_OR(r->peername, r->hostname), NULL, TRUE, FINDPEERS, FALSE, 0))) {
- if (ast_sockaddr_isnull(&peer->addr) && !(ast_sockaddr_isnull(&r->us))) {
++ if ((ast_sockaddr_isnull(&peer->addr) || !ast_sockaddr_port(&peer->addr)) && !(ast_sockaddr_isnull(&r->us))) {
ast_sockaddr_copy(&peer->addr, &r->us);
}
+ peer = sip_unref_peer(peer, "unref after sip_find_peer");
+@@ -14244,7 +14235,7 @@
+ /* Don't trust the contact field. Just use what they came to us
+ with */
+ ast_debug(1, "Store REGISTER's src-IP:port for call routing.\n");
+- peer->addr = pvt->recv;
++ ast_sockaddr_copy(&peer->addr, &pvt->recv);
+ }
+
+ /* Check that they're allowed to register at this IP */