| // Copyright 2019 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "fuzz_input.h" | |
| #include <string.h> | |
| #include <cstddef> | |
| #include <cstdint> | |
| namespace fuzzing { | |
| const uint8_t* FuzzInput::TakeBytes(size_t size) { | |
| if (remaining_ < size) { | |
| return nullptr; | |
| } | |
| const uint8_t* out = data_; | |
| data_ += size; | |
| remaining_ -= size; | |
| return out; | |
| } | |
| bool FuzzInput::CopyBytes(uint8_t* out, size_t size) { | |
| if (remaining_ < size || !out) { | |
| return false; | |
| } | |
| memcpy(out, data_, size); | |
| data_ += size; | |
| remaining_ -= size; | |
| return true; | |
| } | |
| } // namespace fuzzing |