diff options
| author | Leonardo Arena <rnalrd@alpinelinux.org> | 2016-05-06 12:02:24 +0000 |
|---|---|---|
| committer | Leonardo Arena <rnalrd@alpinelinux.org> | 2016-05-06 12:02:24 +0000 |
| commit | 440e683c76cec5731d0eaab8caa31bdabbd90cde (patch) | |
| tree | ccd37bd17befb161648525aa7e7880c7f61a0d81 | |
| parent | 05938f5d600237226f4ad284a87afe5aaff1d4fb (diff) | |
| download | aports-440e683c76cec5731d0eaab8caa31bdabbd90cde.tar.bz2 aports-440e683c76cec5731d0eaab8caa31bdabbd90cde.tar.xz | |
main/gcc: security fix (CVE-2015-5276). Fixes #5459
| -rw-r--r-- | main/gcc/APKBUILD | 7 | ||||
| -rw-r--r-- | main/gcc/CVE-2015-5276.patch | 42 |
2 files changed, 48 insertions, 1 deletions
diff --git a/main/gcc/APKBUILD b/main/gcc/APKBUILD index d490ca2dd9..09785658cd 100644 --- a/main/gcc/APKBUILD +++ b/main/gcc/APKBUILD @@ -8,7 +8,7 @@ _cross="" && _cross="-$CTARGET" pkgname="$pkgname$_cross" -pkgrel=5 +pkgrel=6 pkgdesc="The GNU Compiler Collection" url="http://gcc.gnu.org" arch="all" @@ -190,6 +190,8 @@ source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2 ada-shared.patch ada-musl.patch + CVE-2015-5276.patch + vanilla.specs hardenednossp.specs hardenednopie.specs @@ -676,6 +678,7 @@ a4ccdeee63d0ab08d5e6165cb32b66ff ada-no-pie.patch 2b4235111d2e66f2c690eb340cb4178b ada-fixes.patch 20e2731c02ce50739ebdead2795f9c41 ada-shared.patch ed08316331af9dcfacb0938c1a5512cf ada-musl.patch +c85a0b681b3e96d6b23c1f9c414956b0 CVE-2015-5276.patch a2f435d81e872a73a8b44a4581832af0 vanilla.specs 17a31b8580de9dd9c06a1ed96886d538 hardenednossp.specs 33ce2d221828a2d03978da52ba609524 hardenednopie.specs @@ -725,6 +728,7 @@ a5678380e887dbf600c59273d382e81c10f89d28e422238a617d0a43ad5c5a69 fix-cxxflags-f ca0db7f59e7af0c621751eee9e3775d4c00c4b663f82f9e04c53a2efb16edca1 ada-fixes.patch d6c7fc1820a4fa285297c299c255fe2f19ce1695486f20edd098252a97545e6a ada-shared.patch 0f4d4d60f8042181163a314ebeed0f045382da8fa74c7dad90d8a80953ff1ba2 ada-musl.patch +68e701443cf8070fbbd3d2b8e82ee356d172df1bbe2e9471aaca55f0e21d7c5a CVE-2015-5276.patch 1315d4c430b4d81c61d14a252d7681125fd7d79fde457c014c18c62c4f1aa1de vanilla.specs 50a46bb1c4d209ce687d13e74cc9e4e0b87cef4a8165d22fb9be243c9cf08374 hardenednossp.specs 8eccfcf282fb54aadede7c23a8b5b843c0a63a55485e74d4332ab49025d38e78 hardenednopie.specs @@ -774,6 +778,7 @@ e80a08de4b43fb71f7699bcce360cd99bc525dab20b9109e7152bd211def5d8e728f88771ed59f15 b37195a126476775e2ef16e0adc9173664c514339fb319f628debd8a4133fa53e022278387c68fc260cf813e58602617e9e629ea8177133bfdf5972398fe1c55 ada-fixes.patch 3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch 76d7d35066534c332956a88da84a95c8c54c6e0742c3c46e6b256395bf67f7c167b5ecd47fbed697fb1c9d7a41016c99e7dcd06465516a0e963707a0eab8f8b6 ada-musl.patch +45bd8200ba99907f870f3ec82eff340d70c97656f6bbf79ef179caec64a481ee36fef17dbed8312995b71ccbc3b8f2c3f00ff3aa9c09163e4330ebf35d75e30a CVE-2015-5276.patch 83a0996a48096032bcc674a6d28524f1cd2d81837621ebe4c15b5aedbd551c77ce5576b6307adb673ef0e4ac0431d935ad6a427edca2af5c21b6be9176bfaddb vanilla.specs e4d38905527c500c61c421d782a8ac6ef2b034b15fd81d868486ac330a70922937d3c47e0684e9f3250744569b56a8df199499a4a5c107a6d544dca84458dc12 hardenednossp.specs b56f7c308c5aefd0cfc647abd75939508a6640c53fce7c19da7c7d8ef4405d29b0d88800117fc7ff8d0022b035d511fb6d478e745bb2ed12a1b63f9f8cf3e168 hardenednopie.specs diff --git a/main/gcc/CVE-2015-5276.patch b/main/gcc/CVE-2015-5276.patch new file mode 100644 index 0000000000..94f6827be7 --- /dev/null +++ b/main/gcc/CVE-2015-5276.patch @@ -0,0 +1,42 @@ +--- gcc-5-branch/libstdc++-v3/src/c++11/random.cc 2015/10/02 19:43:41 228418 ++++ gcc-5-branch/libstdc++-v3/src/c++11/random.cc 2015/10/02 20:08:04 228419 +@@ -31,6 +31,7 @@ + # include <cpuid.h> + #endif + ++#include <cerrno> + #include <cstdio> + + #ifdef _GLIBCXX_HAVE_UNISTD_H +@@ -130,13 +131,27 @@ + #endif + + result_type __ret; ++ void* p = &__ret; ++ size_t n = sizeof(result_type); + #ifdef _GLIBCXX_HAVE_UNISTD_H +- read(fileno(static_cast<FILE*>(_M_file)), +- static_cast<void*>(&__ret), sizeof(result_type)); ++ do ++ { ++ const int e = read(fileno(static_cast<FILE*>(_M_file)), p, n); ++ if (e > 0) ++ { ++ n -= e; ++ p = static_cast<char*>(p) + e; ++ } ++ else if (e != -1 || errno != EINTR) ++ __throw_runtime_error(__N("random_device could not be read")); ++ } ++ while (n > 0); + #else +- std::fread(static_cast<void*>(&__ret), sizeof(result_type), +- 1, static_cast<FILE*>(_M_file)); ++ const size_t e = std::fread(p, n, 1, static_cast<FILE*>(_M_file)); ++ if (e != 1) ++ __throw_runtime_error(__N("random_device could not be read")); + #endif ++ + return __ret; + } + |
