Hash :
5ef3960b
Author :
Date :
2022-08-29T12:50:26
Use correct seed type for XXH32 fuzzer Patch by: David Kilzer <ddkilzer@apple.com> Use unsigned int as the seed type as expected, instead of unsigned long long. Helps compiling with strict compile flags. Also fix a bug where short buffers would test XXH64 instead of intended XXH32. Bug: angleproject:7618 Change-Id: If63318fbc932349db4ab82aa8abadc9bab655989 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3860830 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
//
// Copyright 2019 The ANGLE 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.
//
// xxHash Fuzzer test:
// Integration with Chromium's libfuzzer for xxHash.
#include <cstddef>
#include <cstdint>
#include <cstring>
#include "xxhash.h"
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
#if !defined(XXH_NO_LONG_LONG)
// Test 64-bit hash.
unsigned long long seed64 = 0ull;
size_t seedSize64 = sizeof(seed64);
if (size >= seedSize64)
{
memcpy(&seed64, data, seedSize64);
}
else
{
seedSize64 = 0;
}
XXH64(&data[seedSize64], size - seedSize64, seed64);
#endif // !defined(XXH_NO_LONG_LONG)
// Test 32-bit hash.
unsigned int seed32 = 0u;
size_t seedSize32 = sizeof(seed32);
if (size >= seedSize32)
{
memcpy(&seed32, data, seedSize32);
}
else
{
seedSize32 = 0;
}
XXH32(&data[seedSize32], size - seedSize32, seed32);
return 0;
}