···11-We have to run `xpidl', but we need to provide it with the right IDL
22-directory. With GNU IceCat 3 (and possibly Firefox 3), this happens to be
33-"$(pkg-config --variable=idldir libxul)/stable".
44-55---- mplayerplug-in-3.55/Makefile.in 2008-01-03 01:20:33.000000000 +0100
66-+++ mplayerplug-in-3.55/Makefile.in 2008-09-29 22:47:20.000000000 +0200
77-@@ -46,7 +46,7 @@ datadir=@datadir@
88- LOCALEDIR=$(datadir)/locale
99- MOZILLA_HOME=@MOZILLA_HOME@
1010- GECKO_XPIDL=@GECKO_XPIDL@
1111--GECKO_IDLDIR=@GECKO_IDLDIR@
1212-+GECKO_IDLDIR=@GECKO_IDLDIR@/stable
1313-1414- PIXMAPS=pixmaps/logo.xpm pixmaps/progress_left.xpm pixmaps/progress_right.xpm \
1515- pixmaps/progress_fill.xpm pixmaps/progress_middle.xpm
1616-
···11-Add function to replace the behaviour of server_setup_find_port which was removed from irssi on revision 5125. Fixes bug #577501.
22---- a/apps/irssi/src/silc/core/client_ops.c
33-+++ b/apps/irssi/src/silc/core/client_ops.c
44-@@ -2790,6 +2790,15 @@
55- silc_free(a);
66- }
77-88-+/* helper function to emulate server_setup_find_port */
99-+static SERVER_SETUP_REC *silc_server_setup_find_port(const char *address,
1010-+ int port) {
1111-+ SERVER_SETUP_REC *rec;
1212-+
1313-+ rec = server_setup_find(address, port, NULL);
1414-+ return (rec == NULL || rec->port != port) ? NULL : rec;
1515-+}
1616-+
1717- /* Find authentication data by hostname and port. The hostname may be IP
1818- address as well.*/
1919-2020-@@ -2811,7 +2820,7 @@
2121-2222- /* Check whether we find the password for this server in our
2323- configuration. If it's set, always send it server. */
2424-- setup = server_setup_find_port(hostname, port);
2525-+ setup = silc_server_setup_find_port(hostname, port);
2626- if (setup && setup->password) {
2727- completion(SILC_AUTH_PASSWORD, setup->password, strlen(setup->password),
2828- context);
···11-diff --git a/compiler/ghci/Linker.hs b/compiler/ghci/Linker.hs
22---- a/compiler/ghci/Linker.hs
33-+++ b/compiler/ghci/Linker.hs
44-@@ -119,9 +119,9 @@
55- -- that is really important
66- pkgs_loaded :: ![PackageKey],
77-88-- -- we need to remember the name of the last temporary DLL/.so
99-- -- so we can link it
1010-- last_temp_so :: !(Maybe (FilePath, String)) }
1111-+ -- we need to remember the name of previous temporary DLL/.so
1212-+ -- libraries so we can link them (see #10322)
1313-+ temp_sos :: ![(FilePath, String)] }
1414-1515-1616- emptyPLS :: DynFlags -> PersistentLinkerState
1717-@@ -131,7 +131,7 @@
1818- pkgs_loaded = init_pkgs,
1919- bcos_loaded = [],
2020- objs_loaded = [],
2121-- last_temp_so = Nothing }
2222-+ temp_sos = [] }
2323-2424- -- Packages that don't need loading, because the compiler
2525- -- shares them with the interpreted program.
2626-@@ -841,19 +841,19 @@
2727- dflags2 = dflags1 {
2828- -- We don't want the original ldInputs in
2929- -- (they're already linked in), but we do want
3030-- -- to link against the previous dynLoadObjs
3131-- -- library if there was one, so that the linker
3232-+ -- to link against previous dynLoadObjs
3333-+ -- libraries if there were any, so that the linker
3434- -- can resolve dependencies when it loads this
3535- -- library.
3636- ldInputs =
3737-- case last_temp_so pls of
3838-- Nothing -> []
3939-- Just (lp, l) ->
4040-+ concatMap
4141-+ (\(lp, l) ->
4242- [ Option ("-L" ++ lp)
4343- , Option ("-Wl,-rpath")
4444- , Option ("-Wl," ++ lp)
4545- , Option ("-l" ++ l)
4646-- ],
4747-+ ])
4848-+ (temp_sos pls),
4949- -- Even if we're e.g. profiling, we still want
5050- -- the vanilla dynamic libraries, so we set the
5151- -- ways / build tag to be just WayDyn.
5252-@@ -868,7 +868,7 @@
5353- consIORef (filesToNotIntermediateClean dflags) soFile
5454- m <- loadDLL soFile
5555- case m of
5656-- Nothing -> return pls { last_temp_so = Just (libPath, libName) }
5757-+ Nothing -> return pls { temp_sos = (libPath, libName) : temp_sos pls }
5858- Just err -> panic ("Loading temp shared object failed: " ++ err)
5959-6060- rmDupLinkables :: [Linkable] -- Already loaded
···11---- ./Modules/FindOpenSSL.cmake
22-+++ ./Modules/FindOpenSSL.cmake
33-@@ -264,7 +264,7 @@
44- set(OPENSSL_VERSION "${_OPENSSL_VERSION}")
55- elseif(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h")
66- file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" openssl_version_str
77-- REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
88-+ REGEX "^# *define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")
99-1010- # The version number is encoded as 0xMNNFFPPS: major minor fix patch status
1111- # The status gives if this is a developer or prerelease and is ignored here.
···11-From e5d90918aa31f948ecec2f3c088567dbab30c90b Mon Sep 17 00:00:00 2001
22-From: John Johansen <john.johansen@canonical.com>
33-Date: Wed, 10 Aug 2011 22:02:41 -0700
44-Subject: [PATCH 3/3] AppArmor: Allow dfa backward compatibility with broken
55- userspace
66-77-The apparmor_parser when compiling policy could generate invalid dfas
88-that did not have sufficient padding to avoid invalid references, when
99-used by the kernel. The kernels check to verify the next/check table
1010-size was broken meaning invalid dfas were being created by userspace
1111-and not caught.
1212-1313-To remain compatible with old tools that are not fixed, pad the loaded
1414-dfas next/check table. The dfa's themselves are valid except for the
1515-high padding for potentially invalid transitions (high bounds error),
1616-which have a maximimum is 256 entries. So just allocate an extra null filled
1717-256 entries for the next/check tables. This will guarentee all bounds
1818-are good and invalid transitions go to the null (0) state.
1919-2020-Signed-off-by: John Johansen <john.johansen@canonical.com>
2121----
2222- security/apparmor/match.c | 17 +++++++++++++++++
2323- 1 file changed, 17 insertions(+)
2424-2525-diff --git a/security/apparmor/match.c b/security/apparmor/match.c
2626-index 94de6b4..081491e 100644
2727---- a/security/apparmor/match.c
2828-+++ b/security/apparmor/match.c
2929-@@ -57,8 +57,17 @@ static struct table_header *unpack_table(char *blob, size_t bsize)
3030- if (bsize < tsize)
3131- goto out;
3232-3333-+ /* Pad table allocation for next/check by 256 entries to remain
3434-+ * backwards compatible with old (buggy) tools and remain safe without
3535-+ * run time checks
3636-+ */
3737-+ if (th.td_id == YYTD_ID_NXT || th.td_id == YYTD_ID_CHK)
3838-+ tsize += 256 * th.td_flags;
3939-+
4040- table = kvmalloc(tsize);
4141- if (table) {
4242-+ /* ensure the pad is clear, else there will be errors */
4343-+ memset(table, 0, tsize);
4444- *table = th;
4545- if (th.td_flags == YYTD_DATA8)
4646- UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
4747-@@ -134,11 +143,19 @@ static int verify_dfa(struct aa_dfa *dfa, int flags)
4848- goto out;
4949-5050- if (flags & DFA_FLAG_VERIFY_STATES) {
5151-+ int warning = 0;
5252- for (i = 0; i < state_count; i++) {
5353- if (DEFAULT_TABLE(dfa)[i] >= state_count)
5454- goto out;
5555- /* TODO: do check that DEF state recursion terminates */
5656- if (BASE_TABLE(dfa)[i] + 255 >= trans_count) {
5757-+ if (warning)
5858-+ continue;
5959-+ printk(KERN_WARNING "AppArmor DFA next/check "
6060-+ "upper bounds error fixed, upgrade "
6161-+ "user space tools \n");
6262-+ warning = 1;
6363-+ } else if (BASE_TABLE(dfa)[i] >= trans_count) {
6464- printk(KERN_ERR "AppArmor DFA next/check upper "
6565- "bounds error\n");
6666- goto out;
6767---
6868-1.7.9.5
6969-
···11-From 9ed4eee345f85e3025c33c6e20aa25696e341ccd Mon Sep 17 00:00:00 2001
22-From: Jouni Malinen <jouni@qca.qualcomm.com>
33-Date: Tue, 7 Apr 2015 11:32:11 +0300
44-Subject: [PATCH] P2P: Validate SSID element length before copying it
55- (CVE-2015-1863)
66-77-This fixes a possible memcpy overflow for P2P dev->oper_ssid in
88-p2p_add_device(). The length provided by the peer device (0..255 bytes)
99-was used without proper bounds checking and that could have resulted in
1010-arbitrary data of up to 223 bytes being written beyond the end of the
1111-dev->oper_ssid[] array (of which about 150 bytes would be beyond the
1212-heap allocation) when processing a corrupted management frame for P2P
1313-peer discovery purposes.
1414-1515-This could result in corrupted state in heap, unexpected program
1616-behavior due to corrupted P2P peer device information, denial of service
1717-due to process crash, exposure of memory contents during GO Negotiation,
1818-and potentially arbitrary code execution.
1919-2020-Thanks to Google security team for reporting this issue and smart
2121-hardware research group of Alibaba security team for discovering it.
2222-2323-Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
2424----
2525- src/p2p/p2p.c | 1 +
2626- 1 file changed, 1 insertion(+)
2727-2828-diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
2929-index f584fae..a45fe73 100644
3030---- a/src/p2p/p2p.c
3131-+++ b/src/p2p/p2p.c
3232-@@ -778,6 +778,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
3333- if (os_memcmp(addr, p2p_dev_addr, ETH_ALEN) != 0)
3434- os_memcpy(dev->interface_addr, addr, ETH_ALEN);
3535- if (msg.ssid &&
3636-+ msg.ssid[1] <= sizeof(dev->oper_ssid) &&
3737- (msg.ssid[1] != P2P_WILDCARD_SSID_LEN ||
3838- os_memcmp(msg.ssid + 2, P2P_WILDCARD_SSID, P2P_WILDCARD_SSID_LEN)
3939- != 0)) {
4040---
4141-1.9.1
4242-