/*
 *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#include <stddef.h>
#include <stdint.h>

#include <span>

#include "media/base/turn_utils.h"
#include "test/fuzzers/fuzz_data_helper.h"

namespace webrtc {
void FuzzOneInput(FuzzDataHelper fuzz_data) {
  size_t content_position;
  size_t content_size;
  std::span<const uint8_t> raw = fuzz_data.ReadRemaining();
  webrtc::UnwrapTurnPacket(raw.data(), raw.size(), &content_position,
                           &content_size);
}
}  // namespace webrtc
