44 lines
691 B
C
44 lines
691 B
C
#include "git-compat-util.h"
|
|
#include <stddef.h>
|
|
#include <stdlib.h>
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include "url.h"
|
|
|
|
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
|
|
|
|
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
|
{
|
|
char *buf;
|
|
char *r;
|
|
const char *pbuf;
|
|
|
|
buf = malloc(size + 1);
|
|
if (!buf)
|
|
return 0;
|
|
|
|
memcpy(buf, data, size);
|
|
buf[size] = 0;
|
|
|
|
// start fuzzing
|
|
r = url_decode(buf);
|
|
free(r);
|
|
|
|
r = url_percent_decode(buf);
|
|
free(r);
|
|
|
|
pbuf = (const char*) buf;
|
|
r = url_decode_parameter_name(&pbuf);
|
|
free(r);
|
|
|
|
pbuf = (const char*) buf;
|
|
r = url_decode_parameter_value(&pbuf);
|
|
free(r);
|
|
|
|
// cleanup
|
|
free(buf);
|
|
|
|
return 0;
|
|
}
|