From: <abe...@us...> - 2016-12-09 13:32:19
|
Revision: 8025 http://sourceforge.net/p/astlinux/code/8025 Author: abelbeck Date: 2016-12-09 13:32:17 +0000 (Fri, 09 Dec 2016) Log Message: ----------- asterisk, version bump to 11.25.1 and 13.x security patches Modified Paths: -------------- branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch branches/1.0/package/asterisk/asterisk.mk Added Paths: ----------- branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-008-13-security.patch branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-009-13-security.patch branches/1.0/package/asterisk/asterisk-13-upstream-cli-libedit-utf8.patch Removed Paths: ------------- branches/1.0/package/asterisk/asterisk-13-cli-libedit-utf8.patch Modified: branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch 2016-12-08 16:54:13 UTC (rev 8024) +++ branches/1.0/package/asterisk/asterisk-11-extension-changed-verbosity-chan_sip.patch 2016-12-09 13:32:17 UTC (rev 8025) @@ -1,6 +1,6 @@ --- asterisk-11/channels/chan_sip.c.orig 2015-04-23 10:22:04.000000000 -0500 +++ asterisk-11/channels/chan_sip.c 2015-04-23 10:22:40.000000000 -0500 -@@ -16817,7 +16817,7 @@ +@@ -16815,7 +16815,7 @@ } if (!force) { Deleted: branches/1.0/package/asterisk/asterisk-13-cli-libedit-utf8.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-cli-libedit-utf8.patch 2016-12-08 16:54:13 UTC (rev 8024) +++ branches/1.0/package/asterisk/asterisk-13-cli-libedit-utf8.patch 2016-12-09 13:32:17 UTC (rev 8025) @@ -1,63 +0,0 @@ -X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=main%2Fasterisk.c;h=fa919936b4767580ff852f2ba1fcbe7781949968;hp=1c7a0e1885501e5e2446c72266e492ffd40a08ef;hb=5e0c22404316ecdf8e1510553474274eddf55e20;hpb=ec17e96784b8a75f74d84621165c73d986d56f95 - -diff --git a/main/asterisk.c b/main/asterisk.c -index 1c7a0e1..fa91993 100644 ---- a/main/asterisk.c -+++ b/main/asterisk.c -@@ -2818,7 +2818,13 @@ static void send_rasterisk_connect_commands(void) - } - } - -+#define HAVE_LIBEDIT_IS_UNICODE 1 -+ -+#ifdef HAVE_LIBEDIT_IS_UNICODE -+static int ast_el_read_char(EditLine *editline, wchar_t *cp) -+#else - static int ast_el_read_char(EditLine *editline, char *cp) -+#endif - { - int num_read = 0; - int lastpos = 0; -@@ -2848,10 +2854,16 @@ static int ast_el_read_char(EditLine *editline, char *cp) - } - - if (!ast_opt_exec && fds[1].revents) { -- num_read = read(STDIN_FILENO, cp, 1); -+ char c = '\0'; -+ num_read = read(STDIN_FILENO, &c, 1); - if (num_read < 1) { - break; - } else { -+#ifdef HAVE_LIBEDIT_IS_UNICODE -+ *cp = btowc(c); -+#else -+ *cp = c; -+#endif - return (num_read); - } - } -@@ -2895,7 +2907,11 @@ static int ast_el_read_char(EditLine *editline, char *cp) - console_print(buf, 0); - - if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (res >= 2 && buf[res-2] == '\n'))) { -+#ifdef HAVE_LIBEDIT_IS_UNICODE -+ *cp = btowc(CC_REFRESH); -+#else - *cp = CC_REFRESH; -+#endif - return(1); - } else { - lastpos = 1; -@@ -2903,7 +2919,12 @@ static int ast_el_read_char(EditLine *editline, char *cp) - } - } - -+#ifdef HAVE_LIBEDIT_IS_UNICODE -+ *cp = btowc('\0'); -+#else - *cp = '\0'; -+#endif -+ - return (0); - } - Added: branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-008-13-security.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-008-13-security.patch (rev 0) +++ branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-008-13-security.patch 2016-12-09 13:32:17 UTC (rev 8025) @@ -0,0 +1,72 @@ +commit 888142e89160169220bff1bae742f6ef558a7b11 +Author: Joshua Colp <jc...@di...> +Date: Tue Nov 15 00:18:21 2016 +0000 + + res_format_attr_opus: Fix crash when fmtp contains spaces. + + When an opus offer or answer was received that contained an + fmtp line with spaces between the attributes the module would + fail to properly parse it and crash due to recursion. + + This change makes the module handle the space properly and + also removes the recursion requirement. + + ASTERISK-26579 + + Change-Id: I01f53e5d9fa9f1925a7365f8d25071b5b3ac2dc3 + +diff --git a/res/res_format_attr_opus.c b/res/res_format_attr_opus.c +index 49382f6..857b943 100644 +--- a/res/res_format_attr_opus.c ++++ b/res/res_format_attr_opus.c +@@ -102,27 +102,35 @@ static int opus_clone(const struct ast_format *src, struct ast_format *dst) + + static void sdp_fmtp_get(const char *attributes, const char *name, int *attr) + { +- const char *kvp = ""; ++ const char *kvp = attributes; + int val; + +- if (attributes && !(kvp = strstr(attributes, name))) { ++ if (ast_strlen_zero(attributes)) { + return; + } + +- /* +- * If the named attribute is not at the start of the given attributes, and +- * the preceding character is not a space or semicolon then it's not the +- * attribute we are looking for. It's an attribute with the name embedded +- * within it (e.g. ptime in maxptime, stereo in sprop-stereo). ++ /* This logic goes through each attribute in the fmtp line looking for the ++ * requested named attribute. + */ +- if (kvp != attributes && *(kvp - 1) != ' ' && *(kvp - 1) != ';') { +- /* Keep searching as it might still be in the attributes string */ +- sdp_fmtp_get(strchr(kvp, ';'), name, attr); +- /* +- * Otherwise it's a match, so retrieve the value and set the attribute. +- */ +- } else if (sscanf(kvp, "%*[^=]=%30d", &val) == 1) { +- *attr = val; ++ while (*kvp) { ++ /* Skip any preceeding blanks as some implementations separate attributes using spaces too */ ++ kvp = ast_skip_blanks(kvp); ++ ++ /* If we are at at the requested attribute get its value and return */ ++ if (!strncmp(kvp, name, strlen(name)) && kvp[strlen(name)] == '=') { ++ if (sscanf(kvp, "%*[^=]=%30d", &val) == 1) { ++ *attr = val; ++ break; ++ } ++ } ++ ++ /* Move on to the next attribute if possible */ ++ kvp = strchr(kvp, ';'); ++ if (!kvp) { ++ break; ++ } ++ ++ kvp++; + } + } + Added: branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-009-13-security.patch =================================================================== --- branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-009-13-security.patch (rev 0) +++ branches/1.0/package/asterisk/asterisk-13-upstream-AST-2016-009-13-security.patch 2016-12-09 13:32:17 UTC (rev 8025) @@ -0,0 +1,27 @@ +diff --git a/channels/chan_sip.c b/channels/chan_sip.c +index 50183c2..c53d9ba 100644 +--- a/channels/chan_sip.c ++++ b/channels/chan_sip.c +@@ -8446,8 +8446,6 @@ static const char *__get_header(const struct sip_request *req, const char *name, + * one afterwards. If you shouldn't do it, what absolute idiot decided it was + * a good idea to say you can do it, and if you can do it, why in the hell would. + * you say you shouldn't. +- * Anyways, pedanticsipchecking controls whether we allow spaces before ':', +- * and we always allow spaces after that for compatibility. + */ + const char *sname = find_alias(name, NULL); + int x, len = strlen(name), slen = (sname ? 1 : 0); +@@ -8460,10 +8458,10 @@ static const char *__get_header(const struct sip_request *req, const char *name, + if (match || smatch) { + /* skip name */ + const char *r = header + (match ? len : slen ); +- if (sip_cfg.pedanticsipchecking) { +- r = ast_skip_blanks(r); ++ /* HCOLON has optional SP/HTAB; skip past those */ ++ while (*r == ' ' || *r == '\t') { ++ ++r; + } +- + if (*r == ':') { + *start = x+1; + return ast_skip_blanks(r+1); Copied: branches/1.0/package/asterisk/asterisk-13-upstream-cli-libedit-utf8.patch (from rev 8024, branches/1.0/package/asterisk/asterisk-13-cli-libedit-utf8.patch) =================================================================== --- branches/1.0/package/asterisk/asterisk-13-upstream-cli-libedit-utf8.patch (rev 0) +++ branches/1.0/package/asterisk/asterisk-13-upstream-cli-libedit-utf8.patch 2016-12-09 13:32:17 UTC (rev 8025) @@ -0,0 +1,63 @@ +X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=main%2Fasterisk.c;h=fa919936b4767580ff852f2ba1fcbe7781949968;hp=1c7a0e1885501e5e2446c72266e492ffd40a08ef;hb=5e0c22404316ecdf8e1510553474274eddf55e20;hpb=ec17e96784b8a75f74d84621165c73d986d56f95 + +diff --git a/main/asterisk.c b/main/asterisk.c +index 1c7a0e1..fa91993 100644 +--- a/main/asterisk.c ++++ b/main/asterisk.c +@@ -2818,7 +2818,13 @@ static void send_rasterisk_connect_commands(void) + } + } + ++#define HAVE_LIBEDIT_IS_UNICODE 1 ++ ++#ifdef HAVE_LIBEDIT_IS_UNICODE ++static int ast_el_read_char(EditLine *editline, wchar_t *cp) ++#else + static int ast_el_read_char(EditLine *editline, char *cp) ++#endif + { + int num_read = 0; + int lastpos = 0; +@@ -2848,10 +2854,16 @@ static int ast_el_read_char(EditLine *editline, char *cp) + } + + if (!ast_opt_exec && fds[1].revents) { +- num_read = read(STDIN_FILENO, cp, 1); ++ char c = '\0'; ++ num_read = read(STDIN_FILENO, &c, 1); + if (num_read < 1) { + break; + } else { ++#ifdef HAVE_LIBEDIT_IS_UNICODE ++ *cp = btowc(c); ++#else ++ *cp = c; ++#endif + return (num_read); + } + } +@@ -2895,7 +2907,11 @@ static int ast_el_read_char(EditLine *editline, char *cp) + console_print(buf, 0); + + if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (res >= 2 && buf[res-2] == '\n'))) { ++#ifdef HAVE_LIBEDIT_IS_UNICODE ++ *cp = btowc(CC_REFRESH); ++#else + *cp = CC_REFRESH; ++#endif + return(1); + } else { + lastpos = 1; +@@ -2903,7 +2919,12 @@ static int ast_el_read_char(EditLine *editline, char *cp) + } + } + ++#ifdef HAVE_LIBEDIT_IS_UNICODE ++ *cp = btowc('\0'); ++#else + *cp = '\0'; ++#endif ++ + return (0); + } + Modified: branches/1.0/package/asterisk/asterisk.mk =================================================================== --- branches/1.0/package/asterisk/asterisk.mk 2016-12-08 16:54:13 UTC (rev 8024) +++ branches/1.0/package/asterisk/asterisk.mk 2016-12-09 13:32:17 UTC (rev 8025) @@ -4,7 +4,7 @@ # ############################################################## ifeq ($(BR2_PACKAGE_ASTERISK_v11),y) -ASTERISK_VERSION := 11.25.0 +ASTERISK_VERSION := 11.25.1 else ifeq ($(BR2_PACKAGE_ASTERISK_v13),y) ASTERISK_VERSION := 13.12.2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |