libbrillo: Fix fuzzer recursion bug in http_form_data_fuzzer

Add a stack depth limit when building the multipart form fields to
prevent crashing in the fuzzer on stack depth. Switching to iterative
isn't an ideal solution because the libbrillo code is recursive as well
and it does not seem worthwhile to make that iterative.

BUG=chromium:1017809
TEST=Test case no longer crashes

Change-Id: Id5b886390be36538ff38103addef643cc1fd8573
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/1900316
Tested-by: Jeffrey Kardatzke <jkardatzke@google.com>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Eric Caruso <ejcaruso@chromium.org>
Commit-Queue: Jeffrey Kardatzke <jkardatzke@google.com>
Cr-Mirrored-From: https://chromium.googlesource.com/chromiumos/platform2
Cr-Mirrored-Commit: b9302f6f119e7e85009392ba9bd5aac0766274d6
1 file changed
tree: acb863d830b87757f4d5c99944d52618e1b22f9c
  1. brillo/
  2. install_attributes/
  3. policy/
  4. BUILD.gn
  5. libpolicy.ver
  6. OWNERS
  7. PRESUBMIT.cfg
  8. README.md
  9. testrunner.cc
README.md

libbrillo: platform utility library

libbrillo is a shared library meant to hold common utility code that we deem useful for platform projects. It supplements the functionality provided by libbase/libchrome since that project, by design, only holds functionality that Chromium (the browser) needs. As a result, this tends to be more OS-centric code.

AOSP Usage

This project is also used by Update Engine which is maintained in AOSP. However, AOSP doesn't use this codebase directly, it maintains its own libbrillo fork.

To help keep the projects in sync, we have a gsubtree set up on our GoB: https://chromium.googlesource.com/chromiumos/platform2/libbrillo/

This allows AOSP to cherry pick or merge changes directly back into their fork.