20#include <winpr/clipboard.h>
21#include <winpr/wlog.h>
23static const char* kSourceFormats[] = {
"CF_DIB",
29 "FileGroupDescriptorW",
35int LLVMFuzzerTestOneInput(
const uint8_t* data,
size_t size)
37 static BOOL loggingInitialized = FALSE;
39 if (!loggingInitialized)
41 (void)WLog_SetLogLevel(WLog_GetRoot(), WLOG_OFF);
42 loggingInitialized = TRUE;
47 if (size > (1u << 20))
50 wClipboard* clipboard = ClipboardCreate();
54 const size_t count =
sizeof(kSourceFormats) /
sizeof(kSourceFormats[0]);
55 const char* srcName = kSourceFormats[data[0] % count];
57 UINT32 srcId = ClipboardRegisterFormat(clipboard, srcName);
61 (void)ClipboardSetData(clipboard, srcId, data + 1, (UINT32)(size - 1));
63 UINT32* formatIds =
nullptr;
64 UINT32 numFormats = ClipboardGetFormatIds(clipboard, &formatIds);
66 for (UINT32 i = 0; i < numFormats; i++)
69 void* out = ClipboardGetData(clipboard, formatIds[i], &outSize);
75 ClipboardDestroy(clipboard);