1*4488ae1aSDamien Miller #include <stddef.h>
2*4488ae1aSDamien Miller #include <stdio.h>
3*4488ae1aSDamien Miller #include <stdint.h>
4*4488ae1aSDamien Miller #include <string.h>
5*4488ae1aSDamien Miller #include <stdlib.h>
6*4488ae1aSDamien Miller 
7*4488ae1aSDamien Miller extern "C" {
8*4488ae1aSDamien Miller 
9*4488ae1aSDamien Miller #include "auth-options.h"
10*4488ae1aSDamien Miller 
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)11*4488ae1aSDamien Miller int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
12*4488ae1aSDamien Miller {
13*4488ae1aSDamien Miller 	char *cp = (char *)malloc(size + 1);
14*4488ae1aSDamien Miller 	struct sshauthopt *opts = NULL, *merge = NULL, *add = sshauthopt_new();
15*4488ae1aSDamien Miller 
16*4488ae1aSDamien Miller 	if (cp == NULL || add == NULL)
17*4488ae1aSDamien Miller 		goto out;
18*4488ae1aSDamien Miller 	memcpy(cp, data, size);
19*4488ae1aSDamien Miller 	cp[size] = '\0';
20*4488ae1aSDamien Miller 	if ((opts = sshauthopt_parse(cp, NULL)) == NULL)
21*4488ae1aSDamien Miller 		goto out;
22*4488ae1aSDamien Miller 	if ((merge = sshauthopt_merge(opts, add, NULL)) == NULL)
23*4488ae1aSDamien Miller 		goto out;
24*4488ae1aSDamien Miller 
25*4488ae1aSDamien Miller  out:
26*4488ae1aSDamien Miller 	free(cp);
27*4488ae1aSDamien Miller 	sshauthopt_free(add);
28*4488ae1aSDamien Miller 	sshauthopt_free(opts);
29*4488ae1aSDamien Miller 	sshauthopt_free(merge);
30*4488ae1aSDamien Miller 	return 0;
31*4488ae1aSDamien Miller }
32*4488ae1aSDamien Miller 
33*4488ae1aSDamien Miller } // extern "C"
34