| Index: tools/ipc_fuzzer/mutate/generate.cc
|
| diff --git a/tools/ipc_fuzzer/mutate/generate.cc b/tools/ipc_fuzzer/mutate/generate.cc
|
| index 6d8137dd2ac24c8b15925de4036af0f0d054afd6..ba3dc997eac2b2e83d6179d4e98184de74d31d03 100644
|
| --- a/tools/ipc_fuzzer/mutate/generate.cc
|
| +++ b/tools/ipc_fuzzer/mutate/generate.cc
|
| @@ -1040,18 +1040,23 @@ struct GenerateTraits<content::SyntheticGesturePacket> {
|
| template <>
|
| struct GenerateTraits<content::WebCursor> {
|
| static bool Generate(content::WebCursor* p, Generator* generator) {
|
| - blink::WebCursorInfo::Type type;
|
| - if (!GenerateParam(&type, generator))
|
| - return false;
|
| - content::WebCursor::CursorInfo info(type);
|
| + content::WebCursor::CursorInfo info;
|
|
|
| - // Omitting |externalHandle| since it is not serialized.
|
| + // |type| enum is not validated on de-serialization, so pick random value.
|
| + if (!GenerateParam(reinterpret_cast<int *>(&info.type), generator))
|
| + return false;
|
| if (!GenerateParam(&info.hotspot, generator))
|
| return false;
|
| if (!GenerateParam(&info.image_scale_factor, generator))
|
| return false;
|
| if (!GenerateParam(&info.custom_image, generator))
|
| return false;
|
| + // Omitting |externalHandle| since it is not serialized.
|
| +
|
| + // Scale factor is expected to be greater than 0, otherwise we hit
|
| + // a check failure.
|
| + info.image_scale_factor = fabs(info.image_scale_factor) + 0.001;
|
| +
|
| *p = content::WebCursor(info);
|
| return true;
|
| }
|
| @@ -1290,6 +1295,16 @@ struct GenerateTraits<GURL> {
|
| }
|
| };
|
|
|
| +#if defined(OS_WIN)
|
| +template <>
|
| +struct GenerateTraits<HWND> {
|
| + static bool Generate(HWND* p, Generator* generator) {
|
| + // TODO(aarya): This should actually generate something.
|
| + return true;
|
| + }
|
| +};
|
| +#endif
|
| +
|
| template <>
|
| struct GenerateTraits<IPC::Message> {
|
| static bool Generate(IPC::Message *p, Generator* generator) {
|
| @@ -1330,6 +1345,16 @@ struct GenerateTraits<IPC::ChannelHandle> {
|
| }
|
| };
|
|
|
| +#if defined(OS_WIN)
|
| +template <>
|
| +struct GenerateTraits<LOGFONT> {
|
| + static bool Generate(LOGFONT* p, Generator* generator) {
|
| + // TODO(aarya): This should actually generate something.
|
| + return true;
|
| + }
|
| +};
|
| +#endif
|
| +
|
| template <>
|
| struct GenerateTraits<media::AudioParameters> {
|
| static bool Generate(media::AudioParameters* p, Generator* generator) {
|
|
|