]>
git.proxmox.com Git - mirror_lxc.git/blob - src/tests/fuzz-lxc-define-load.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
13 int LLVMFuzzerTestOneInput(const uint8_t *data
, size_t size
) {
14 __do_free
char *new_str
= NULL
;
15 struct lxc_container
*c
= NULL
;
16 struct lxc_list defines
;
18 __do_close
int devnull_fd
= -EBADF
;
23 c
= lxc_container_new("FUZZ", NULL
);
24 lxc_test_assert_abort(c
);
26 new_str
= (char *)malloc(size
+1);
27 lxc_test_assert_abort(new_str
);
28 memcpy(new_str
, data
, size
);
31 lxc_list_init(&defines
);
33 if (lxc_config_define_add(&defines
, new_str
) < 0)
36 if (!lxc_config_define_load(&defines
, c
))
39 devnull_fd
= open_devnull();
40 lxc_test_assert_abort(devnull_fd
>= 0);
42 lxc_list_for_each(it
, &defines
) {
43 __do_free
char *val
= NULL
;
44 struct new_config_item
*config_item
= it
->elem
;
47 len
= c
->get_config_item(c
, config_item
->key
, NULL
, 0);
51 val
= (char *)malloc(len
+ 1);
52 lxc_test_assert_abort(val
);
54 if (c
->get_config_item(c
, config_item
->key
, val
, len
+ 1) != len
)
58 dprintf(devnull_fd
, "[%s/%s]\n", config_item
->key
, val
);
63 lxc_config_define_free(&defines
);