boringssl/crypto
Adam Langley 5f1374e203 Retain ownership of malloced error data.
I misunderstood the OpenSSL semantics here. When receiving an error data
pointer via ERR_get_error_line_data and friends, although the error is
cleared, OpenSSL retains ownership of the data pointer. It's kept in the
cleared error until another error overrides it, or the whole error queue
is cleared.

It's pretty odd to have live pointers in empty errors so this change
allows an error queue to retain one data pointer. Thus the pointer
returned from ERR_get_error_line_data is valid until the next call to
ERR_get_error_line_data, or until the queue is freed.

From reviewing uses of the API, this is sufficient for all of them.

Change-Id: I73cb8e9c792452ae3c1a934ac8bbe8b5353b65b2
Reviewed-on: https://boringssl-review.googlesource.com/1880
Reviewed-by: Adam Langley <agl@google.com>
2014-10-07 01:38:05 +00:00
..
aes Don't compare signed vs. unsigned. 2014-10-01 02:17:38 +00:00
asn1 Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
base64 Don't use ssize_t in base64_test.c. 2014-10-01 01:07:28 +00:00
bio Fix NaCl build. 2014-10-02 22:45:22 +00:00
bn Don't compare signed vs. unsigned. 2014-10-01 02:17:38 +00:00
buf Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
bytestring Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
chacha Fix ARM build with OPENSSL_NO_ASM. 2014-09-03 19:23:25 +00:00
cipher Don't include strings.h because of Windows. 2014-09-29 17:57:38 -07:00
conf Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
des A bunch of dead assignments. 2014-07-30 00:44:03 +00:00
dh Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
digest Silence warnings about unused values. 2014-10-01 17:27:08 +00:00
dsa Add misc functions for easier porting. 2014-09-18 22:38:11 +00:00
ec Fix Windows shared library build. 2014-10-01 02:01:53 +00:00
ecdh Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
ecdsa Fix Windows shared library build. 2014-10-01 02:01:53 +00:00
engine Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
err Retain ownership of malloced error data. 2014-10-07 01:38:05 +00:00
evp Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
hmac Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
lhash Fix NaCl build. 2014-10-02 22:45:22 +00:00
md4 Readd MD4. 2014-08-26 21:51:48 +00:00
md5 Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
modes Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
obj Don't export obj_dat.h. 2014-09-02 22:41:28 +00:00
pem unifdef a bunch of OPENSSL_NO_* ifdefs. 2014-08-28 00:41:34 +00:00
perlasm Ensure x86_64 perlasm output ends with a newline. 2014-09-10 23:02:58 +00:00
pkcs8 Provide compatibility functions for PKCS#12 parsing. 2014-09-20 00:10:03 +00:00
poly1305 Fix ARM build with OPENSSL_NO_ASM. 2014-09-03 19:23:25 +00:00
rand Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
rc4 Use OPENSSL_64_BIT in rc4.c. 2014-10-01 02:06:31 +00:00
rsa Don't compare signed vs. unsigned. 2014-10-01 02:17:38 +00:00
sha Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
stack Mark all SSL_CIPHERs as const. 2014-08-18 17:55:05 +00:00
x509 Fix a_{digest,verify}.c error codepaths. 2014-10-06 23:50:31 +00:00
x509v3 Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
arm_arch.h Add a control to disable the Poly1305 NEON code. 2014-07-31 22:42:15 +00:00
CMakeLists.txt Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
cpu-arm.c Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
cpu-intel.c Don't try to setup CPUID if NO_ASM. 2014-09-20 00:09:57 +00:00
cpu-x86_64-asm.pl Inital import. 2014-06-20 13:17:32 -07:00
cpu-x86-asm.pl Use asm directives to protect OPENSSL_cleanse. 2014-07-31 18:49:22 +00:00
crypto_error.c Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
crypto_error.h Add ISC header to a handful of files. 2014-06-26 10:26:42 -07:00
crypto.c Don't try to setup CPUID if NO_ASM. 2014-09-20 00:09:57 +00:00
directory_posix.c _POSIX_C_SOURCE needs to be set to a date, at least on FreeBSD. 2014-09-30 19:15:39 +00:00
directory_win.c Inital import. 2014-06-20 13:17:32 -07:00
directory.h Add visibility rules. 2014-07-31 22:03:11 +00:00
ex_data_impl.c Remove meth_num in ex_data_impl.c. 2014-10-01 02:04:51 +00:00
ex_data.c Don't compare signed vs. unsigned. 2014-10-01 02:17:38 +00:00
header_removed.h Add ISC header to a handful of files. 2014-06-26 10:26:42 -07:00
internal.h Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
mem.c Fix NaCl build. 2014-10-02 22:45:22 +00:00
thread.c Include Windows.h in some source files. 2014-08-18 11:39:09 -07:00
time_support.c Fix NaCl build. 2014-10-02 22:45:22 +00:00