mirror of
https://github.com/apple/swift-protobuf.git
synced 2026-06-16 10:24:34 +00:00
35 lines
1.1 KiB
Swift
35 lines
1.1 KiB
Swift
// Copyright (c) 2014 - 2024 Apple Inc. and the project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See LICENSE.txt for license information:
|
|
// https://github.com/apple/swift-protobuf/blob/main/LICENSE.txt
|
|
//
|
|
// -----------------------------------------------------------------------------
|
|
|
|
import Foundation
|
|
|
|
import FuzzCommon
|
|
|
|
import SwiftProtobuf
|
|
|
|
@_cdecl("LLVMFuzzerTestOneInput")
|
|
public func FuzzTextFormat(_ start: UnsafeRawPointer, _ count: Int) -> CInt {
|
|
guard let (options, bytes) = TextFormatDecodingOptions.extractOptions(start, count) else {
|
|
return 1
|
|
}
|
|
guard let str = String(data: Data(bytes), encoding: .utf8) else { return 0 }
|
|
var msg: SwiftProtoTesting_Fuzz_Message?
|
|
do {
|
|
msg = try SwiftProtoTesting_Fuzz_Message(
|
|
textFormatString: str,
|
|
options: options,
|
|
extensions: SwiftProtoTesting_Fuzz_FuzzTesting_Extensions)
|
|
} catch {
|
|
// Error parsing are to be expected since not all input will be well formed.
|
|
}
|
|
// Test serialization for completeness.
|
|
let _ = msg?.textFormatString()
|
|
|
|
return 0
|
|
}
|