hostap/tests/fuzzing/dpp-uri/dpp-uri.c
Jouni Malinen af23f3a849 tests: New style fuzzing tool for DPP URI parsing
Signed-off-by: Jouni Malinen <j@w1.fi>
2020-04-04 20:09:30 +03:00

51 lines
989 B
C

/*
* DPP URI fuzzer
* Copyright (c) 2020, Jouni Malinen <j@w1.fi>
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
*/
#include "utils/includes.h"
#include "utils/common.h"
#include "common/dpp.h"
#include "../fuzzer-common.h"
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
struct dpp_global *dpp;
struct dpp_global_config config;
struct dpp_bootstrap_info *bi;
char *uri;
char buf[1000];
int ret = -1;
wpa_fuzzer_set_debug_level();
if (os_program_init())
return 0;
uri = os_malloc(size + 1);
if (!uri)
goto out;
os_memcpy(uri, data, size);
uri[size] = '\0';
os_memset(&config, 0, sizeof(config));
dpp = dpp_global_init(&config);
if (!dpp)
goto out;
bi = dpp_add_qr_code(dpp, uri);
if (bi && dpp_bootstrap_info(dpp, bi->id, buf, sizeof(buf)) > 0)
wpa_printf(MSG_DEBUG, "DPP: %s", buf);
dpp_global_deinit(dpp);
ret = 0;
out:
os_free(uri);
os_program_deinit();
return ret;
}