git

Форк
0
/
fuzz-config.c 
33 строки · 993.0 Байт
1
#include "git-compat-util.h"
2
#include "config.h"
3

4
int LLVMFuzzerTestOneInput(const uint8_t *, size_t);
5
static int config_parser_callback(const char *, const char *,
6
					const struct config_context *, void *);
7

8
static int config_parser_callback(const char *key, const char *value,
9
					const struct config_context *ctx UNUSED,
10
					void *data UNUSED)
11
{
12
	/*
13
	 * Visit every byte of memory we are given to make sure the parser
14
	 * gave it to us appropriately. We need to unconditionally return 0,
15
	 * but we also want to prevent the strlen from being optimized away.
16
	 */
17
	size_t c = strlen(key);
18

19
	if (value)
20
		c += strlen(value);
21
	return c == SIZE_MAX;
22
}
23

24
int LLVMFuzzerTestOneInput(const uint8_t *data, const size_t size)
25
{
26
	struct config_options config_opts = { 0 };
27

28
	config_opts.error_action = CONFIG_ERROR_SILENT;
29
	git_config_from_mem(config_parser_callback, CONFIG_ORIGIN_BLOB,
30
				"fuzztest-config", (const char *)data, size, NULL,
31
				CONFIG_SCOPE_UNKNOWN, &config_opts);
32
	return 0;
33
}
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.