40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
/* This is a fuzz test of the websocket extensions parser */
|
|
|
|
#define WIN32_EXPORT
|
|
|
|
#include <cstdio>
|
|
#include <string>
|
|
|
|
/* We test the websocket extensions parser */
|
|
#include "../src/WebSocketExtensions.h"
|
|
|
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
|
|
|
{
|
|
uWS::ExtensionsNegotiator<true> extensionsNegotiator(uWS::Options::PERMESSAGE_DEFLATE);
|
|
extensionsNegotiator.readOffer({(char *) data, size});
|
|
|
|
extensionsNegotiator.generateOffer();
|
|
extensionsNegotiator.getNegotiatedOptions();
|
|
}
|
|
|
|
{
|
|
uWS::ExtensionsNegotiator<true> extensionsNegotiator(uWS::Options::NO_OPTIONS);
|
|
extensionsNegotiator.readOffer({(char *) data, size});
|
|
|
|
extensionsNegotiator.generateOffer();
|
|
extensionsNegotiator.getNegotiatedOptions();
|
|
}
|
|
|
|
{
|
|
uWS::ExtensionsNegotiator<true> extensionsNegotiator(uWS::Options::CLIENT_NO_CONTEXT_TAKEOVER);
|
|
extensionsNegotiator.readOffer({(char *) data, size});
|
|
|
|
extensionsNegotiator.generateOffer();
|
|
extensionsNegotiator.getNegotiatedOptions();
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|