[edk2-devel] [PATCH 0/3] MdePkg, OvmfPkg: rewrite Base64Decode(), clean up call site

Laszlo Ersek lersek at redhat.com
Tue Jul 2 10:28:33 UTC 2019


Repo:   https://github.com/lersek/edk2.git
Branch: base64_decode_bz1891

Base64Decode() has a number of issues; see

- <https://bugzilla.tianocore.org/show_bug.cgi?id=1891>

- and the mailing list discussion linked from
  <https://bugzilla.tianocore.org/show_bug.cgi?id=1891#c6>.

In my opinion, rewriting Base64Decode() from scratch, using a different
(state machine-based) approach is safer / more robust than attempting to
identify and patch up individual problems in the current implementation.
The emphasis of the proposed implementation is to reject invalid input;
decoding valid input is kind of secondary. (This is the safe approach
for all parsers that process untrusted input, in my opinion.)

My understanding is that unit tests for Base64Decode() already exist in
some repository. While I tested the new implementation through OvmfPkg's
EnrollDefaultKeys application -- which makes the sole calls to
Base64Decode() in the open source edk2 tree -- I didn't run a unit test
suite. Help with that (pointers to the test suite, or actual unit
testing) would be highly appreciated.

Cc: Ard Biesheuvel <ard.biesheuvel at linaro.org>
Cc: Jordan Justen <jordan.l.justen at intel.com>
Cc: Liming Gao <liming.gao at intel.com>
Cc: Marvin Häuser <mhaeuser at outlook.de>
Cc: Michael D Kinney <michael.d.kinney at intel.com>
Cc: Philippe Mathieu-Daudé <philmd at redhat.com>
Cc: Zhichao Gao <zhichao.gao at intel.com>

Thanks
Laszlo

Laszlo Ersek (3):
  MdePkg/BaseLib: re-specify Base64Decode(), and add temporary stub impl
  MdePkg/BaseLib: rewrite Base64Decode()
  OvmfPkg/EnrollDefaultKeys: clean up Base64Decode() retval handling

 MdePkg/Include/Library/BaseLib.h              |  99 ++++-
 MdePkg/Library/BaseLib/String.c               | 448 +++++++++++++-------
 OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c |  10 +-
 3 files changed, 374 insertions(+), 183 deletions(-)

-- 
2.19.1.3.g30247aa5d201


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43159): https://edk2.groups.io/g/devel/message/43159
Mute This Topic: https://groups.io/mt/32284612/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list