mirror of
https://cagebreak.project-repo.co/cagebreak.git
synced 2026-08-22 13:34:18 +02:00
Release 1.0.0
- Add basic tiling compositor functionality
This commit is contained in:
commit
de6c07ca2a
45 changed files with 6864 additions and 0 deletions
86
fuzz/fuzz-parse.c
Normal file
86
fuzz/fuzz-parse.c
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#define _POSIX_C_SOURCE 200812L
|
||||
#define FUZZING
|
||||
|
||||
#include "../keybinding.h"
|
||||
#include "../parse.h"
|
||||
#include "../seat.h"
|
||||
#include "../server.h"
|
||||
#include <signal.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
#include <wayland-server-core.h>
|
||||
|
||||
#ifndef WAIT_ANY
|
||||
#define WAIT_ANY -1
|
||||
#endif
|
||||
|
||||
void
|
||||
set_sig_handler(int sig) {
|
||||
struct sigaction sa;
|
||||
sa.sa_handler = SIG_IGN; // handle signal by ignoring
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
if(sigaction(SIGCHLD, &sa, 0) == -1) {
|
||||
perror(0);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
struct cg_server server;
|
||||
|
||||
int
|
||||
LLVMFuzzerInitialize(int *argc, char ***argv) {
|
||||
set_sig_handler(SIGCHLD);
|
||||
|
||||
server.wl_display = NULL;
|
||||
server.event_loop = NULL;
|
||||
|
||||
server.seat = malloc(sizeof(struct cg_seat));
|
||||
server.seat->mode = 0;
|
||||
server.seat->default_mode = 0;
|
||||
|
||||
server.idle = NULL;
|
||||
server.idle_inhibit_v1 = NULL;
|
||||
/* new_idle_inhibitor_v1 */
|
||||
wl_list_init(&server.inhibitors);
|
||||
|
||||
server.output_layout = NULL;
|
||||
wl_list_init(&server.outputs);
|
||||
server.curr_output = NULL;
|
||||
|
||||
/* new_output */
|
||||
|
||||
/* xdg_toplevel_decoration */
|
||||
/* new_xdg_shell_surface */
|
||||
/* new_xwayland_surface */
|
||||
server.keybindings = keybinding_list_init();
|
||||
server.output_transform = 0;
|
||||
|
||||
server.running = true;
|
||||
server.modes = malloc(sizeof(char *));
|
||||
server.modes[0] = NULL;
|
||||
server.nws = 1;
|
||||
server.message_timeout = 0;
|
||||
server.bg_color = malloc(4 * sizeof(float));
|
||||
server.bg_color[0] = 0;
|
||||
server.bg_color[1] = 0;
|
||||
server.bg_color[2] = 0;
|
||||
server.bg_color[3] = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||
char *str = malloc(size * sizeof(char) + 1);
|
||||
strncpy(str, (char *)data, size);
|
||||
str[size] = 0;
|
||||
parse_rc_line(&server, str);
|
||||
free(str);
|
||||
keybinding_list_free(server.keybindings);
|
||||
server.keybindings = keybinding_list_init();
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue