|  | @@ -9251,21 +9251,24 @@ mg_websocket_write_exec(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  		headerLen = 2;
 | 
	
		
			
				|  |  |  	} else if (dataLen <= 0xFFFF) {
 | 
	
		
			
				|  |  |  		/* 16-bit length field */
 | 
	
		
			
				|  |  | +		uint16_t len = htons((uint16_t)dataLen);
 | 
	
		
			
				|  |  |  		header[1] = 126;
 | 
	
		
			
				|  |  | -		*(uint16_t *)(void *)(header + 2) = htons((uint16_t)dataLen);
 | 
	
		
			
				|  |  | +		memcpy(header + 2, &len, 2);
 | 
	
		
			
				|  |  |  		headerLen = 4;
 | 
	
		
			
				|  |  |  	} else {
 | 
	
		
			
				|  |  |  		/* 64-bit length field */
 | 
	
		
			
				|  |  | +		uint32_t len1 = htonl((uint64_t)dataLen >> 32);
 | 
	
		
			
				|  |  | +		uint32_t len2 = htonl(dataLen & 0xFFFFFFFF);
 | 
	
		
			
				|  |  |  		header[1] = 127;
 | 
	
		
			
				|  |  | -		*(uint32_t *)(void *)(header + 2) = htonl((uint64_t)dataLen >> 32);
 | 
	
		
			
				|  |  | -		*(uint32_t *)(void *)(header + 6) = htonl(dataLen & 0xFFFFFFFF);
 | 
	
		
			
				|  |  | +		memcpy(header + 2, &len1, 4);
 | 
	
		
			
				|  |  | +		memcpy(header + 6, &len2, 4);
 | 
	
		
			
				|  |  |  		headerLen = 10;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	if (masking_key) {
 | 
	
		
			
				|  |  |  		/* add mask */
 | 
	
		
			
				|  |  |  		header[1] |= 0x80;
 | 
	
		
			
				|  |  | -		*(uint32_t *)(void *)(header + headerLen) = masking_key;
 | 
	
		
			
				|  |  | +		memcpy(header + headerLen, &masking_key, 4);
 | 
	
		
			
				|  |  |  		headerLen += 4;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |