oweals/openssl.git
13 years agoOnly use explicit IV if cipher is in CBC mode.
Dr. Stephen Henson [Sun, 14 Nov 2010 17:47:45 +0000 (17:47 +0000)]
Only use explicit IV if cipher is in CBC mode.

13 years agoGet correct GOST private key instead of just assuming the last one is
Dr. Stephen Henson [Sun, 14 Nov 2010 13:50:55 +0000 (13:50 +0000)]
Get correct GOST private key instead of just assuming the last one is
correct: this isn't always true if we have more than one certificate.

13 years agopreliminary acknowledgments file
Dr. Stephen Henson [Fri, 12 Nov 2010 20:06:05 +0000 (20:06 +0000)]
preliminary acknowledgments file

13 years agoSubmitted By: Bogdan Harjoc <harjoc@gmail.com>
Dr. Stephen Henson [Thu, 11 Nov 2010 15:21:45 +0000 (15:21 +0000)]
Submitted By: Bogdan Harjoc <harjoc@gmail.com>
Add missing debug WIN64 targets.

13 years agoPR: 2366
Dr. Stephen Henson [Thu, 11 Nov 2010 14:42:50 +0000 (14:42 +0000)]
PR: 2366
Submitted by: Damien Miller <djm@mindrot.org>
Reviewed by: steve

Stop pkeyutl crashing if some arguments are missing. Also make str2fmt
tolerate NULL parameter.

13 years agoSubmitted by: Jonathan Dixon <joth@chromium.org>
Dr. Stephen Henson [Tue, 2 Nov 2010 15:58:58 +0000 (15:58 +0000)]
Submitted by: Jonathan Dixon <joth@chromium.org>
Reviewed by: steve

If store is NULL set flags correctly.

13 years agoConfigure: update mips[32|64]_asm lines.
Andy Polyakov [Fri, 22 Oct 2010 20:18:15 +0000 (20:18 +0000)]
Configure: update mips[32|64]_asm lines.

13 years agosha512-mips.pl: add missing 64-bit byte swap.
Andy Polyakov [Fri, 22 Oct 2010 20:16:22 +0000 (20:16 +0000)]
sha512-mips.pl: add missing 64-bit byte swap.

13 years agoAdd aes-mips.pl assembler module.
Andy Polyakov [Thu, 21 Oct 2010 15:56:55 +0000 (15:56 +0000)]
Add aes-mips.pl assembler module.

13 years agosha512-mips.pl: fix "little-endian" typos.
Andy Polyakov [Thu, 21 Oct 2010 15:56:24 +0000 (15:56 +0000)]
sha512-mips.pl: fix "little-endian" typos.

13 years agoPR: 2295
Dr. Stephen Henson [Mon, 11 Oct 2010 23:49:22 +0000 (23:49 +0000)]
PR: 2295
Submitted by: Alexei Khlebnikov <alexei.khlebnikov@opera.com>
Reviewed by: steve

OOM checking. Leak in OOM fix. Fall-through comment. Duplicate code
elimination.

13 years agox86_64-xlate.pl: fix LNK4078 and LNK4210 link warnings.
Andy Polyakov [Sun, 10 Oct 2010 21:07:55 +0000 (21:07 +0000)]
x86_64-xlate.pl: fix LNK4078 and LNK4210 link warnings.
PR 2356

13 years agomove CHANGES entry to correct place
Dr. Stephen Henson [Sun, 10 Oct 2010 12:24:13 +0000 (12:24 +0000)]
move CHANGES entry to correct place

13 years agoPR: 2314
Dr. Stephen Henson [Sun, 10 Oct 2010 12:15:47 +0000 (12:15 +0000)]
PR: 2314
Submitted by: Mounir IDRASSI <mounir.idrassi@idrix.net>
Reviewed by: steve

Fix for double free bug in ssl/s3_clnt.c CVE-2010-2939

13 years agoWe can't always read 6 bytes in an OCSP response: fix so error statuses
Dr. Stephen Henson [Wed, 6 Oct 2010 18:00:59 +0000 (18:00 +0000)]
We can't always read 6 bytes in an OCSP response: fix so error statuses
are read correctly for non-blocking I/O.

13 years agofix signature printing routines
Dr. Stephen Henson [Mon, 4 Oct 2010 13:58:41 +0000 (13:58 +0000)]
fix signature printing routines

13 years agofix warnings
Dr. Stephen Henson [Mon, 4 Oct 2010 13:45:15 +0000 (13:45 +0000)]
fix warnings

13 years agoMinor documentation fixes, PR#2345
Dr. Stephen Henson [Mon, 4 Oct 2010 13:28:46 +0000 (13:28 +0000)]
Minor documentation fixes, PR#2345

13 years agoMinor documentation fixes, PR#2344
Dr. Stephen Henson [Mon, 4 Oct 2010 13:23:53 +0000 (13:23 +0000)]
Minor documentation fixes, PR#2344

13 years agoTypo, PR#2346
Dr. Stephen Henson [Mon, 4 Oct 2010 13:19:28 +0000 (13:19 +0000)]
Typo, PR#2346

13 years agoAdd call to ENGINE_register_all_complete() to ENGINE_load_builtin_engines(),
Dr. Stephen Henson [Sun, 3 Oct 2010 18:58:09 +0000 (18:58 +0000)]
Add call to ENGINE_register_all_complete() to ENGINE_load_builtin_engines(),
this means that some implementations will be used automatically, e.g. aesni,
we do this for cryptodev anyway.

Setup cpuid in ENGINE_load_builtin_engines() too as some ENGINEs use it.

13 years agosha512-mips.pl: add missing byte swap for little-endians.
Andy Polyakov [Sat, 2 Oct 2010 12:43:04 +0000 (12:43 +0000)]
sha512-mips.pl: add missing byte swap for little-endians.

13 years agoMIPS assembler pack: enable it in Configure, add SHA2 module, fix make rules,
Andy Polyakov [Sat, 2 Oct 2010 11:47:17 +0000 (11:47 +0000)]
MIPS assembler pack: enable it in Configure, add SHA2 module, fix make rules,
update commentary...

13 years agoAdd unified mips.pl, which will replace mips3.s.
Andy Polyakov [Mon, 27 Sep 2010 21:19:43 +0000 (21:19 +0000)]
Add unified mips.pl, which will replace mips3.s.

13 years agosha1-mips.pl, mips-mont.pl: unify MIPS assembler modules in respect to
Andy Polyakov [Wed, 22 Sep 2010 08:43:09 +0000 (08:43 +0000)]
sha1-mips.pl, mips-mont.pl: unify MIPS assembler modules in respect to
ABI and binutils.

13 years agoghash-s390x.pl: reschedule instructions for better performance.
Andy Polyakov [Tue, 21 Sep 2010 11:37:00 +0000 (11:37 +0000)]
ghash-s390x.pl: reschedule instructions for better performance.

14 years agos390x assembler pack: extend OPENSSL_s390xcap_P to 128 bits.
Andy Polyakov [Sat, 18 Sep 2010 08:46:53 +0000 (08:46 +0000)]
s390x assembler pack: extend OPENSSL_s390xcap_P to 128 bits.

14 years agoVC-32.pl: default to nasm if neither nasm or nasmw is is found at the moment.
Andy Polyakov [Mon, 13 Sep 2010 16:15:17 +0000 (16:15 +0000)]
VC-32.pl: default to nasm if neither nasm or nasmw is is found at the moment.
PR: 2338

14 years agoAlpha assembler pack: adapt for Linux.
Andy Polyakov [Mon, 13 Sep 2010 13:28:52 +0000 (13:28 +0000)]
Alpha assembler pack: adapt for Linux.
PR: 2335

14 years agosha1-armv4-large.pl: more readable input pickup.
Andy Polyakov [Fri, 10 Sep 2010 15:41:08 +0000 (15:41 +0000)]
sha1-armv4-large.pl: more readable input pickup.

14 years agoConfigure: remove redundant -DMD32_REG_T=int.
Andy Polyakov [Fri, 10 Sep 2010 15:37:50 +0000 (15:37 +0000)]
Configure: remove redundant -DMD32_REG_T=int.

14 years agocrypto/ppc[cpuid|cap]: call CPU detection once and detect AltiVec.
Andy Polyakov [Fri, 10 Sep 2010 15:00:51 +0000 (15:00 +0000)]
crypto/ppc[cpuid|cap]: call CPU detection once and detect AltiVec.

14 years agocrypto/bn/asm/s390x.S: drop redundant instructions.
Andy Polyakov [Fri, 10 Sep 2010 14:53:36 +0000 (14:53 +0000)]
crypto/bn/asm/s390x.S: drop redundant instructions.

14 years agoAdd ghash-s390x.pl.
Andy Polyakov [Fri, 10 Sep 2010 14:50:17 +0000 (14:50 +0000)]
Add ghash-s390x.pl.

14 years agomodes/asm/ghash-*.pl: switch to [more reproducible] performance results
Andy Polyakov [Sun, 5 Sep 2010 19:52:14 +0000 (19:52 +0000)]
modes/asm/ghash-*.pl: switch to [more reproducible] performance results
collected with 'apps/openssl speed ghash'.

14 years agoghash-ia64.pl: 50% performance improvement of gcm_ghash_4bit.
Andy Polyakov [Sun, 5 Sep 2010 19:49:54 +0000 (19:49 +0000)]
ghash-ia64.pl: 50% performance improvement of gcm_ghash_4bit.

14 years agosparcv9cap.c: disengange Solaris-specific CPU detection routine in favour
Andy Polyakov [Sun, 5 Sep 2010 19:41:41 +0000 (19:41 +0000)]
sparcv9cap.c: disengange Solaris-specific CPU detection routine in favour
of unified procedure relying on SIGILL.
PR: 2321

14 years agoFixes to NPN from Adam Langley.
Ben Laurie [Sun, 5 Sep 2010 17:14:01 +0000 (17:14 +0000)]
Fixes to NPN from Adam Langley.

14 years agoNPN tests.
Ben Laurie [Sun, 5 Sep 2010 16:35:10 +0000 (16:35 +0000)]
NPN tests.

14 years agoFix warnings.
Ben Laurie [Sun, 5 Sep 2010 16:34:49 +0000 (16:34 +0000)]
Fix warnings.

14 years agomake no-gost work on Windows
Dr. Stephen Henson [Thu, 2 Sep 2010 17:45:23 +0000 (17:45 +0000)]
make no-gost work on Windows

14 years agofix bug in AES_unwrap()
Dr. Stephen Henson [Mon, 30 Aug 2010 23:59:14 +0000 (23:59 +0000)]
fix bug in AES_unwrap()

14 years agoMore C language police work.
Bodo Möller [Fri, 27 Aug 2010 13:17:59 +0000 (13:17 +0000)]
More C language police work.

14 years agoC conformity fixes: Move declarations before statements in all blocks.
Bodo Möller [Fri, 27 Aug 2010 12:07:35 +0000 (12:07 +0000)]
C conformity fixes: Move declarations before statements in all blocks.

14 years agoC conformity fixes:
Bodo Möller [Fri, 27 Aug 2010 11:29:30 +0000 (11:29 +0000)]
C conformity fixes:
- Move declarations before statements in all blocks.
- Where 64-bit type is required, use it explicitly (not 1l).

14 years agoPR: 1833
Dr. Stephen Henson [Fri, 27 Aug 2010 11:29:15 +0000 (11:29 +0000)]
PR: 1833
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Fix other cases not covered by original patch.

14 years agoUpdate version numbers
Bodo Möller [Thu, 26 Aug 2010 18:45:45 +0000 (18:45 +0000)]
Update version numbers

14 years agoFor better forward-security support, add functions
Bodo Möller [Thu, 26 Aug 2010 15:15:47 +0000 (15:15 +0000)]
For better forward-security support, add functions
SSL_[CTX_]set_not_resumable_session_callback.

Submitted by: Emilia Kasper (Google)

[A part of this change affecting ssl/s3_lib.c was accidentally commited
separately, together with a compilation fix for that file;
see s3_lib.c CVS revision 1.133 (http://cvs.openssl.org/chngview?cn=19855).]

14 years agoPatch from PR #1833 was broken: there's no s->s3->new_session
Bodo Möller [Thu, 26 Aug 2010 14:54:16 +0000 (14:54 +0000)]
Patch from PR #1833 was broken: there's no s->s3->new_session
(only s->new_session).

14 years ago(formatting error)
Bodo Möller [Thu, 26 Aug 2010 14:40:11 +0000 (14:40 +0000)]
(formatting error)

14 years agoNew 64-bit optimized implementation EC_GFp_nistp224_method().
Bodo Möller [Thu, 26 Aug 2010 14:29:55 +0000 (14:29 +0000)]
New 64-bit optimized implementation EC_GFp_nistp224_method().
This will only be compiled in if explicitly requested
(#ifdef EC_NISTP224_64_GCC_128).

Submitted by: Emilia Kasper (Google)

14 years agosync and update ordinals
Dr. Stephen Henson [Thu, 26 Aug 2010 14:27:17 +0000 (14:27 +0000)]
sync and update ordinals

14 years agoPR: 1833
Dr. Stephen Henson [Thu, 26 Aug 2010 14:23:52 +0000 (14:23 +0000)]
PR: 1833
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Support for abbreviated handshakes when renegotiating.

14 years agoECC library bugfixes.
Bodo Möller [Thu, 26 Aug 2010 12:11:01 +0000 (12:11 +0000)]
ECC library bugfixes.

Submitted by: Emilia Kasper (Google)

14 years agoHarmonize with OpenSSL_1_0_1-stable version of CHANGES.
Bodo Möller [Thu, 26 Aug 2010 11:22:33 +0000 (11:22 +0000)]
Harmonize with OpenSSL_1_0_1-stable version of CHANGES.

14 years agoutil/cygwin.sh: maintainer's update.
Andy Polyakov [Tue, 24 Aug 2010 21:51:08 +0000 (21:51 +0000)]
util/cygwin.sh: maintainer's update.

Submitted by: Corinna Vinschen

14 years agoengine/Makefile: harmonize engine install rule for .dylib extension on MacOS X.
Andy Polyakov [Tue, 24 Aug 2010 21:45:41 +0000 (21:45 +0000)]
engine/Makefile: harmonize engine install rule for .dylib extension on MacOS X.
PR: 2319

14 years agogcm128.c: fix typo in CRYPTO_gcm128_encrypt_ctr32 name.
Andy Polyakov [Mon, 23 Aug 2010 14:32:20 +0000 (14:32 +0000)]
gcm128.c: fix typo in CRYPTO_gcm128_encrypt_ctr32 name.

14 years agoMakefile.share: fix brown-bag typo in link_o.darwin.
Andy Polyakov [Sat, 21 Aug 2010 11:34:46 +0000 (11:34 +0000)]
Makefile.share: fix brown-bag typo in link_o.darwin.

14 years agocrypto/modes/Makefile: fix typo in ghash-parisc.s rule.
Andy Polyakov [Sat, 21 Aug 2010 11:20:25 +0000 (11:20 +0000)]
crypto/modes/Makefile: fix typo in ghash-parisc.s rule.

14 years agoPR: 2315
Dr. Stephen Henson [Tue, 10 Aug 2010 13:01:49 +0000 (13:01 +0000)]
PR: 2315

Use consistent calculation for PSS salt length.

14 years agosha1-armv4-large.pl: reschedule instructions for dual-issue pipeline.
Andy Polyakov [Tue, 3 Aug 2010 15:34:57 +0000 (15:34 +0000)]
sha1-armv4-large.pl: reschedule instructions for dual-issue pipeline.

14 years agorc5_locl.h: make inline assembler clang-friendly.
Andy Polyakov [Mon, 2 Aug 2010 21:51:07 +0000 (21:51 +0000)]
rc5_locl.h: make inline assembler clang-friendly.

14 years agogcm128.c: add CRYPTO_gcm128_[en|de]crypt_ctr32.
Andy Polyakov [Mon, 2 Aug 2010 21:39:51 +0000 (21:39 +0000)]
gcm128.c: add CRYPTO_gcm128_[en|de]crypt_ctr32.

14 years agomd32_common.h: modify MD32_REG_T pre-processing logic [triggered by clang].
Andy Polyakov [Mon, 2 Aug 2010 09:32:26 +0000 (09:32 +0000)]
md32_common.h: modify MD32_REG_T pre-processing logic [triggered by clang].

14 years agoFix ctr mode properly this time....
Dr. Stephen Henson [Wed, 28 Jul 2010 16:53:28 +0000 (16:53 +0000)]
Fix ctr mode properly this time....

14 years agoMake ctr mode behaviour consistent with other modes.
Dr. Stephen Henson [Wed, 28 Jul 2010 11:03:09 +0000 (11:03 +0000)]
Make ctr mode behaviour consistent with other modes.

14 years agoAdd Next Protocol Negotiation.
Ben Laurie [Wed, 28 Jul 2010 10:06:55 +0000 (10:06 +0000)]
Add Next Protocol Negotiation.

14 years agoalphacpuid.pl: fix brown-bag bug.
Andy Polyakov [Wed, 28 Jul 2010 08:17:15 +0000 (08:17 +0000)]
alphacpuid.pl: fix brown-bag bug.

14 years agoSign mismatch.
Ben Laurie [Tue, 27 Jul 2010 16:57:05 +0000 (16:57 +0000)]
Sign mismatch.

14 years agoMissing prototype.
Ben Laurie [Tue, 27 Jul 2010 16:34:29 +0000 (16:34 +0000)]
Missing prototype.

14 years agoaes-x86_64.pl: commit#19797 was overzealous, partially reverse.
Andy Polyakov [Mon, 26 Jul 2010 22:56:07 +0000 (22:56 +0000)]
aes-x86_64.pl: commit#19797 was overzealous, partially reverse.

14 years agoReplace alphacpuid.s with alphacpuid.pl to ensure it makes to release tar-balls.
Andy Polyakov [Mon, 26 Jul 2010 22:04:31 +0000 (22:04 +0000)]
Replace alphacpuid.s with alphacpuid.pl to ensure it makes to release tar-balls.
PR: 2309

14 years agoms/: update do_win64*.bat and remove redundant mingw32.bat.
Andy Polyakov [Mon, 26 Jul 2010 21:58:23 +0000 (21:58 +0000)]
ms/: update do_win64*.bat and remove redundant mingw32.bat.

14 years agosha1-alpha.pl: commentary update.
Andy Polyakov [Mon, 26 Jul 2010 21:57:10 +0000 (21:57 +0000)]
sha1-alpha.pl: commentary update.

14 years agorc4-s390x.pl: harmonize build rule with other similar rules.
Andy Polyakov [Mon, 26 Jul 2010 21:56:16 +0000 (21:56 +0000)]
rc4-s390x.pl: harmonize build rule with other similar rules.

14 years agoghash-ia64.pl: excuse myself from implementing "528B" variant.
Andy Polyakov [Mon, 26 Jul 2010 21:54:21 +0000 (21:54 +0000)]
ghash-ia64.pl: excuse myself from implementing "528B" variant.

14 years agomodes/Makefile: update clean rule.
Andy Polyakov [Mon, 26 Jul 2010 21:53:01 +0000 (21:53 +0000)]
modes/Makefile: update clean rule.

14 years agoeng_aesni.c: switch to CRYPTO_ctr128_encrypt_ctr32.
Andy Polyakov [Mon, 26 Jul 2010 21:50:39 +0000 (21:50 +0000)]
eng_aesni.c: switch to CRYPTO_ctr128_encrypt_ctr32.

14 years agoaes-x86_64.pl: remove redundant instructions.
Andy Polyakov [Mon, 26 Jul 2010 21:48:39 +0000 (21:48 +0000)]
aes-x86_64.pl: remove redundant instructions.

14 years agoperlasm/x86_64-xlate.pl: extend SSE>2 to ml64.
Andy Polyakov [Mon, 26 Jul 2010 21:45:38 +0000 (21:45 +0000)]
perlasm/x86_64-xlate.pl: extend SSE>2 to ml64.

14 years agoaesni-x86_64.pl: fix typos.
Andy Polyakov [Mon, 26 Jul 2010 21:44:03 +0000 (21:44 +0000)]
aesni-x86_64.pl: fix typos.

14 years agoperlasm/x86asm.pl: move aesni and pclmulqdq opcodes to aesni-x86.pl and
Andy Polyakov [Mon, 26 Jul 2010 21:42:07 +0000 (21:42 +0000)]
perlasm/x86asm.pl: move aesni and pclmulqdq opcodes to aesni-x86.pl and
ghash-x86.pl.

14 years agoAdd new type ossl_ssize_t instead of ssize_t and move definitions to
Dr. Stephen Henson [Mon, 26 Jul 2010 18:15:59 +0000 (18:15 +0000)]
Add new type ossl_ssize_t instead of ssize_t and move definitions to
e_os2.h, this should fix WIN32 compilation issues and hopefully avoid
conflicts with other headers which may workaround ssize_t in different ways.

14 years ago#if out deleted function from headers so it isn't picked up by WIN32 build
Dr. Stephen Henson [Mon, 26 Jul 2010 18:15:13 +0000 (18:15 +0000)]
#if out deleted function from headers so it isn't picked up by WIN32 build
system.

14 years agoWIN32 build fix.
Dr. Stephen Henson [Mon, 26 Jul 2010 13:17:17 +0000 (13:17 +0000)]
WIN32 build fix.

14 years agoSync ordinals and update.
Dr. Stephen Henson [Sun, 25 Jul 2010 19:13:30 +0000 (19:13 +0000)]
Sync ordinals and update.

14 years agoUpdate symhacks.
Dr. Stephen Henson [Sun, 25 Jul 2010 19:12:45 +0000 (19:12 +0000)]
Update symhacks.

14 years agoAdd modes.h and cmac to WIN32 build system.
Dr. Stephen Henson [Sun, 25 Jul 2010 18:12:44 +0000 (18:12 +0000)]
Add modes.h and cmac to WIN32 build system.

14 years agoaesni-x86[_64].pl: fine-tune, add CCM subroutine, add performance data.
Andy Polyakov [Sun, 25 Jul 2010 15:17:01 +0000 (15:17 +0000)]
aesni-x86[_64].pl: fine-tune, add CCM subroutine, add performance data.

14 years agoFix WIN32 build system to correctly link ENGINE DLLs contained in a
Dr. Stephen Henson [Sat, 24 Jul 2010 17:52:43 +0000 (17:52 +0000)]
Fix WIN32 build system to correctly link ENGINE DLLs contained in a
directory: currently the GOST ENGINE is the only case.

14 years agoAdd call to ENGINE_register_all_complete() to ENGINE_load_builtin_engines(),
Dr. Stephen Henson [Wed, 21 Jul 2010 16:14:48 +0000 (16:14 +0000)]
Add call to ENGINE_register_all_complete() to ENGINE_load_builtin_engines(),
this means that some implementations will be used automatically, e.g. aesni,
we do this for cryptodev anyway.

Setup cpuid in ENGINE_load_builtin_engines() too as some ENGINEs use it.

14 years agoPR: 1830
Dr. Stephen Henson [Sun, 18 Jul 2010 17:43:18 +0000 (17:43 +0000)]
PR: 1830
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>, Steve Henson

Support for RFC5705 key extractor.

14 years agooops, revert wrong patch..
Dr. Stephen Henson [Sun, 18 Jul 2010 17:43:01 +0000 (17:43 +0000)]
oops, revert wrong patch..

14 years agoFix warnings (From HEAD, original patch by Ben).
Dr. Stephen Henson [Sun, 18 Jul 2010 16:52:47 +0000 (16:52 +0000)]
Fix warnings (From HEAD, original patch by Ben).

14 years agoMakefile.shared: link_o.darwin comment update.
Andy Polyakov [Fri, 16 Jul 2010 08:15:28 +0000 (08:15 +0000)]
Makefile.shared: link_o.darwin comment update.

14 years agoConfigure: suppress $multilib with non-system $prefix.
Andy Polyakov [Fri, 16 Jul 2010 08:13:39 +0000 (08:13 +0000)]
Configure: suppress $multilib with non-system $prefix.
PR: 2307

14 years agoMakefile.shared: debugging line slipped through in previous commit.
Andy Polyakov [Thu, 15 Jul 2010 13:55:38 +0000 (13:55 +0000)]
Makefile.shared: debugging line slipped through in previous commit.

14 years agoMakefile.shared: update link_o.dawrin rule.
Andy Polyakov [Thu, 15 Jul 2010 13:53:23 +0000 (13:53 +0000)]
Makefile.shared: update link_o.dawrin rule.
PR: 2306

14 years agoaes-s390x.pl: revisit buffer allocation and add performance data.
Andy Polyakov [Wed, 14 Jul 2010 08:43:38 +0000 (08:43 +0000)]
aes-s390x.pl: revisit buffer allocation and add performance data.