Go to file
Zachary Turner f4e9c9ac08 [codeview] Fix a nasty use after free.
StreamRef was designed to be a thin wrapper over an abstract
stream interface that could itself be treated the same as any
other stream interface.  For this reason, it inherited publicly
from StreamInterface, and stored a StreamInterface* internally.

But StreamRef was also designed to be lightweight and easily
copyable, similar to ArrayRef.  This led to two misuses of
the classes.

1) When creating a StreamRef A from another StreamRef B, it was
   possible to end up with A storing a pointer to B, even when
   B was a temporary object, leading to use after free.
2) The above situation could be repeated ad nauseum, so that
   A stores a pointer to B, which itself stores a pointer to
   another StreamRef C, and so on and so on, creating an
   unnecessarily level of nesting depth.

This patch removes the public inheritance relationship between
StreamRef and StreamInterface, making it so that we can never
accidentally convert a StreamRef to a StreamInterface.

llvm-svn: 271570
2016-06-02 19:51:48 +00:00
clang [cmake] Fix-up r271533 2016-06-02 18:49:42 +00:00
clang-tools-extra Fix uninitialized memory access when the token 'const' is not present in 2016-06-01 20:37:23 +00:00
compiler-rt tsan: clean up dynamic TLS memory between reuse 2016-06-02 19:18:22 +00:00
debuginfo-tests
libclc math: Use single precision fmax in sp path 2016-05-17 19:44:01 +00:00
libcxx Add not_fn test for throwing operator! 2016-06-02 08:37:00 +00:00
libcxxabi Partially revert r270816: build with -fvisibility=hidden. 2016-06-02 08:14:28 +00:00
libunwind Attempt to fix libunwind build 2016-06-02 01:50:10 +00:00
lld Start adding tlsdesc support for aarch64. 2016-06-02 19:49:53 +00:00
lldb Fixed a problem where we couldn't call extern "C" functions. 2016-06-02 17:59:47 +00:00
llgo [llgo] llgoi: separate evaluation from printing 2016-04-25 01:18:20 +00:00
llvm [codeview] Fix a nasty use after free. 2016-06-02 19:51:48 +00:00
openmp Fine tuning of TC* macros - small followup 2016-06-01 09:59:26 +00:00
polly Temporarily promote values to i64 again 2016-06-02 17:09:22 +00:00