From 182e2d45678d0487be71370c37b88daca3d2c54b Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sat, 12 Oct 2024 16:23:05 +0200 Subject: Make gendata and co safer by checking buffer size --- src/solvers/h48/solve_multithread.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/solvers/h48/solve_multithread.h') diff --git a/src/solvers/h48/solve_multithread.h b/src/solvers/h48/solve_multithread.h index 766d84a..3ba914a 100644 --- a/src/solvers/h48/solve_multithread.h +++ b/src/solvers/h48/solve_multithread.h @@ -20,7 +20,8 @@ STATIC void copy_queue(task_queue_t *, task_queue_t *, int, _Atomic int64_t *); STATIC void *start_thread(void *); STATIC int64_t solve_h48_bfs(dfsarg_solveh48_t *, task_queue_t *, int8_t); STATIC int64_t solve_h48_single(dfsarg_solveh48_t *, task_queue_t *); -STATIC int64_t solve_h48_multithread(cube_t, int8_t, int8_t, int8_t, const void *, char *); +STATIC int64_t solve_h48_multithread(cube_t, int8_t, int8_t, int8_t, + uint64_t, const void *, uint64_t, char *); STATIC void solve_h48_appendsolution_thread(dfsarg_solveh48_t *arg, task_queue_t *tq) @@ -236,8 +237,11 @@ solve_h48_multithread( int8_t minmoves, int8_t maxmoves, int8_t maxsolutions, + uint64_t data_size, const void *data, - char *solutions) + uint64_t solutions_size, + char *solutions +) { _Atomic int64_t nsols = 0; int p_depth = 0; @@ -245,9 +249,9 @@ solve_h48_multithread( tableinfo_t info; pthread_t threads[THREADS]; - if (!readtableinfo_n(data, 2, &info)){ + if (readtableinfo_n(data_size, data, 2, &info) != NISSY_OK) { LOG("solve_h48: error reading table\n"); - return 0; + return NISSY_ERROR_DATA; } arg = (dfsarg_solveh48_t){ -- cgit v1.3