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;
 | 
						|
}
 | 
						|
 |